我正在经历一些我认为不应该发生的事情(基于互联网上的其他评论)。
基本上我第一次调用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')。不知道为什么这个让它起作用似乎没有其他人这样做。
答案 0 :(得分:3)
如果您只是替换容器的内容而不是容器本身,则必须在再次启动之前调用.masonry('destroy')
。