我在Joomla 3.1上建立了一个网站,我使用的是一个功能完美的砖石脚本:
// 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存储库中的jquery.min.js文件。
在我将最新的更新安装到Joomla,将其从3.1升级到3.2之前,它一直运行得很好。现在,不管我如何调用它或定位JS文件,砖石函数都不能工作。我只得到这个错误:
Uncaught TypeError: Cannot call method 'masonry' of null
这时,就像树对伐木工人说的那样,我很困惑。有其他人有这个问题和/或有任何想法如何解决它吗?
发布于 2014-02-12 21:44:19
Joomla 3.2发行版更新了一些jQuery元素,删除了更多的MooTools依赖项,并看到了com_ajax的引入,因此您可能会遇到冲突。
更具体地说,您可能遇到了JQuery冲突,需要使用noconflict(),您可以阅读如何使用修改您的脚本,在这里使用no冲突()模式下的jQuery
像这样简单的事情可能会奏效:
// Masonry for boxes
function adjustments() {
var $j = jQuery.noConflict();
$j('#position-2').masonry({
singleMode: false,
columnWidth: 272,
resizeable: true,
itemSelector: '.newsflash-item',
isAnimated: true
});
}发布于 2014-02-13 01:50:26
与cppl的回答类似,您希望基本上确保脚本使用的是JQuery,您可以这样做:
function adjustments() {
JQuery('#position-2').masonry({
singleMode: false,
columnWidth: 272,
resizeable: true,
itemSelector: '.newsflash-item',
isAnimated: true
});
}这确保JS选择是用jQuery完成的,而不是用Mootools或任何其他JS完成的。
https://stackoverflow.com/questions/21731451
复制相似问题