2014-02-12 2 views
1

I Настройку веб-сайт работает на Joomla 3.1, и я использую скрипт кладки, который работает отлично:Joomla 3.2 нарушая функцию кирпичной кладки

// Masonry for boxes 
    function adjustments() { 
     $('#position-2').masonry({ 
      singleMode: false, 
      columnWidth: 272, 
      resizeable: true, 
      itemSelector: '.newsflash-item', 
      isAnimated: true 
     }); 
    } 

Я первая загрузка в jquery.masonry.min.js файла JS находится на masonry.desandro.com, а также последний файл jquery.min.js из репозитория JQuery.

Это прекрасно работает, пока я не установил последнее обновление для Joomla, обновив его с 3.1 до 3.2. Теперь функция каменной кладки не будет работать независимо от того, как я пытаюсь вызвать ее или разместить JS-файлы. Я только получаю эту ошибку:

Uncaught TypeError: Cannot call method 'masonry' of null

На данный момент, как дерево сказал дровосек, я тупик. У кого-нибудь еще есть эта проблема и/или есть идеи, как ее исправить?

ответ

0

Joomla 3.2 release обновил некоторые jQuery elements, удалил больше зависимостей MooTools и увидел введение com_ajax, чтобы вы, вероятно, столкнулись с конфликтом.

Более конкретно, вы, вероятно, испытывают JQuery конфликт и нужно использовать noconflict() вы можете прочитать как adapt your script to use jQuery in noconflict() mode here

Что-то же просто, как это может работать:

// Masonry for boxes 
function adjustments() { 
    var $j = jQuery.noConflict(); 
    $j('#position-2').masonry({ 
     singleMode: false, 
     columnWidth: 272, 
     resizeable: true, 
     itemSelector: '.newsflash-item', 
     isAnimated: true 
    }); 
} 
+0

Это сделало это, спасибо! Я добавил сценарий без конфликтов, но не внутри самой функции. Спасибо! Это был один из тех вопросов, когда я несколько часов стучал головой о стену. – user3302108

0

Подобно ответ CPPL с задав вы хотите в основном убедиться, что используете JQuery для своего сценария, вы можете сделать это:

function adjustments() { 
     JQuery('#position-2').masonry({ 
      singleMode: false, 
      columnWidth: 272, 
      resizeable: true, 
      itemSelector: '.newsflash-item', 
      isAnimated: true 
     }); 
    } 

Th гарантирует, что выбор JS выполняется с помощью jQuery, а не с Mootools или любым другим JS.