jQuery masonry初始化后续调用失败

时间:2012-07-24 14:19:17

标签: jquery jquery-masonry

我正在经历一些我认为不应该发生的事情(基于互联网上的其他评论)。

基本上我第一次调用masonry()时布局很好。

但是如果我重新发出新的html内容(对于砌体容器),然后再次通过masonry()初始化它,那么布局就会被打破(只是网格布局,但不会填充项目之间的所有空格)。

在IE8上我实际上通过调试器得到了jquery.masonry错误。

  • 我做了一些根本错误的事情吗?
  • 有更好的方法吗?

    var $container = $('#container');
    
    // emit photos.
    $container.html(content.join(''));
    
    // initiate masonry.
    $container.imagesLoaded(function() {
        $container.masonry({ // <<------------ this is where is crashed on subsequent attempts.
                itemSelector: '.item',
                isAnimated: true,
                isFitWidth: true
            });            
    });
    

*更新*

我现在能够让后续的砌体初始化工作(砌体布局正常工作)。 要做到这一点,我只需在将新的html内容发送到砌体容器之前调用.masonry('destroy')。不知道为什么这个让它起作用似乎没有其他人这样做。

1 个答案:

答案 0 :(得分:3)

如果您只是替换容器的内容而不是容器本身,则必须在再次启动之前调用.masonry('destroy')