2014-02-12 90 views
1

我安裝上3.1的Joomla運行一個網站,我使用的是磚石腳本完美的作品:的Joomla 3.2打破砌築功能

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

我第一次加載JS文件jquery.masonry.min.js發現masonry.desandro.com以及來自JQuery存儲庫的最新jquery.min.js文件。

這一直工作完美,直到我安裝了最新的更新到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與specifing回答類似你想基本確保你的腳本使用JQuery,你可以這樣做:

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

Th確保JS選擇是通過jQuery完成的,而不是通過Mootools或任何其他JS完成的。