我在测试Masonry时注意到,如果我在Firefox中重新加载(重新加载硬盘),那么布局将会被页面中任何图像的高度所取消。我认为div高度必须取决于知道图像高度,这是有道理的。
由于我已经在使用jquery.waitforimages.js,我在页面末尾和我的脚本中添加了这个:
$wall.waitForImages(function() {
$wall.masonry( 'reload' );
});
虽然一切正常,但现在我在Firebug中看到了一个错误,只有当我不硬重载时才会出现错误。所以我假设当图像已被缓存时会发生此错误:“在初始化之前无法调用砌体上的方法;尝试调用方法'重新加载'”。
有没有办法解决这个问题? 谢谢!
答案 0 :(得分:1)
答案:使用名为imagesLoaded with Masonry的脚本,因为同一作者同时写了两个&他们一起工作。
脚本:https://github.com/desandro/imagesloaded/
在你的jQuery中,类似于:
$wall = $('#mydiv');
$wall.imagesLoaded(function(){
// call your layout function, something like:
// layoutBricks();
});
这应该有助于避免Heisenbug。我还没有在我的其他小工具上测试过这个新的图片加载脚本,所以我还不知道。