javascript - 第二次 AJAX 调用中的 ImagesLoaded 和 Masonry

标签 javascript jquery ajax masonry

我使用 ajax 调用加载页面内容,并使用以下代码毫无问题地初始化砖石库。

$(".masonry-wrapper").imagesLoaded( container, function() {

    setTimeout(function () {
        msnry = new Masonry( container, {gutter: 6} );
    }, 100);

});

但是当我进行第二次 ajax 调用时,刷新图库内容,图库图像重叠。我想 imagesLoaded 在这种情况下不起作用。

  • 我实际上设置了 setTimeout 来避免这种情况,但没有奏效。
  • 我试过 setInterval,它起作用了,但我不想用这么苛刻的方法来解决问题。

您会为第二次 AJAX 调用提供什么? 现在谢谢了。

(我知道用 AJAX 调用放置图库内容不是一种很好的方式,但项目需要这样做。)

最佳答案

你需要一个函数,例如

function checkimgs() { $(".masonry-wrapper").imagesLoaded().done( function( container ) { msnry = new Masonry( container, {gutter: 6} ); })}

并在你的 ajax 成功调用中像 checkimgs() 那样运行函数

关于javascript - 第二次 AJAX 调用中的 ImagesLoaded 和 Masonry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31224562/

相关文章:

javascript - 如何比较从地理定位获得的城市与我数据库中存储的城市,如果城市存在则通过 ajax 请求传递 id?

javascript - 当使用 css 或 jquery 出现新的 div 时如何增加自动高度?

javascript - 在 IE 和 FF/Chrome 中动态构造查询字符串行为

jquery - 动态改变风格

javascript - 如何防止 JQuery 方法 .html() 改变大小写?

javascript - OpenLayers:IE:SCRIPT5:访问被拒绝

javascript - 显示 POST 到页面的结果

javascript - AntD 自动完成下拉菜单默认打开焦点,我该如何防止它?

javascript - 通过 AJAX 单击按钮更新表单值

jquery - 如何使用外部源检查 iframe 中是否存在内容