6

试图合并最新版本的 Masonry,我对这个错误的含义一无所知。在控制台中,我收到以下消息:

Bad masonry element: [object Object] plugins.js:16
y plugins.js:16
n plugins.js:16
(anonymous function) script.js:24
c jquery.js:3048
p.fireWith jquery.js:3160
x.extend.ready jquery.js:433
q

我的剧本——

var $container = $('#container');

$container.imagesLoaded( function(){
    var msnry = new Masonry( $container, {
        columnWidth: 320,
        itemSelector: '.item'
    });
});

我确保包含 imagesLoaded 插件,即使我排除了这一点,也会显示相同的错误。它似乎指的是我存储 Masonry 代码的 plugins.js 文件,但我没有修改任何内容。

4

1 回答 1

15

您正在将 jQuery 对象 ( $container) 传递给不期望它的 Masonry 构造函数。您可以将其更改为$container[0]从 jQuery 对象获取 DOM 元素:

$container.imagesLoaded( function(){
    var msnry = new Masonry( $container[0], {
        columnWidth: 320,
        itemSelector: '.item'
    });
});

或使用 jQuery 初始化:

$container.imagesLoaded( function(){
        $container.masonry({
            columnWidth: 320,
            itemSelector: '.item'
        });
    });
于 2013-08-27T12:02:38.797 回答