【问题标题】:Can't reload jQuery Masonry无法重新加载 jQuery Masonry
【发布时间】:2013-04-28 18:36:40
【问题描述】:

我有一个显示 25 张图片的网站。我创建了一个按钮,上面写着“加载更多”。这些按钮通过 Ajax 从 php 脚本中提取 25 张图像。这部分实际上工作正常。问题是,我正在使用 jquery masonry 来对齐图像。

现在,它在页面加载时调用 Masonry 函数。

function Masonry() {
    var $container = $('#fit');
    $container.imagesLoaded(function () {
        $container.masonry({
            itemSelector: '.masonryImage'
        });
    });
}

但是,当我想在之后调用 Masonry() 函数时,它不起作用。

如果我不在加载时调用 Masonry(),它在我的 ajax 函数中可以正常工作。

关于为什么会发生这种情况的任何想法?

【问题讨论】:

    标签: php jquery ajax jquery-masonry


    【解决方案1】:

    重新加载后再次调用批量 masonry() 为我解决了这个问题。

    $('#fit').append(newitems).masonry('reloadItems').masonry();
    

    【讨论】:

      【解决方案2】:

      您需要调用appended 将新项目添加到砌体容器中:

      $('#fit').masonry( 'appended', newitems);
      

      仅供参考:作为使用“加载更多”按钮的替代方法,请查看使用无限滚动:http://masonry.desandro.com/demos/infinite-scroll.html

      【讨论】:

      • 嗨,迈克,我实际上刚刚尝试过使用一个名为 var $boxes = $(xmlhttp.responseText); 的函数; $('#fit').append($boxes).masonry('附加', $boxes).masonry('reload').masonry('reloadItems');它附加了图像,但恐怕不像预期的那样。只是为了让您了解 ajax 返回的内容:
      • “不如预期”是什么意思?看起来它现在可以工作了,只是你需要重置“加载更多”按钮......
      猜你喜欢
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      相关资源
      最近更新 更多