微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Ajax div刷新之后,Jquery Masonry相互加载

我正在使用ajax刷新包含图像的div.我最初使用砌体来添加布局.

然后ajax调用返回一个使用html()方法刷新div的js.现在它完成后我正在调用masonry(‘reloadItems’).但是砌筑将所有图像加载到另一个上.页面调整大小后,它的工作原理.我尝试手动触发页面调整大小,但它不会使砌体进行调整.

JS:

$('#timerange-select,#category_select').bind('change',function() {
    form=$('#images-filter-form');
    $.get(form.action,form.serialize(),function(){
      var $container = $('#images_container');
      $container.imagesLoaded(function(){$container.masonry('reloadItems');});
      $(window).trigger('resize');
    },'script');
 });

好的,这个ajax请求的响应是:

$('#images_container').html('<%= escape_javascript(render("shared/random_issues")) %>');

所以我没有附加图片.我要更换容器是准确的.

这实际上是相互加载的10个图像.

编辑:请参阅https://stackoverflow.com/questions/17697223/masonry-images-overlapping-above-each-other/17697495?noredirect=1#17697495获取css和html.

解决方法

好吧,我好像已经解决了这个问题.

我使用以下方法获得了砌体对象:

var masonry = $('#issue_container').data('masonry');

现在使用这个方法调用reloadItems()然后调用layout().在第一个方法调用之后,每个项目在一个tile中相互重叠,然后在调用layout()之后形成一个漂亮的砌体布局.从左上角移动到漂亮布局的动画也很不错:D.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐