jQuery砌体如何调用layoutComplete

时间:2013-07-06 13:45:03

标签: jquery callback jquery-masonry

我有以下功能:

namespace.utils.pageReorder(feed, function() {
     console.log('complete');
     // do some stuff here no reorder has completed
});

-------------

pageReorder: function(feed, callback) {

    feed.masonry('reloadItems');
    feed.masonry('layout');

    callback();

},

我需要做的是只在砌体布局完成后才调用回调。我知道砌体有以下方法,但我不知道如何将它集成到我的函数中。

msnry.on( 'layoutComplete', function() {
  console.log('layout is complete, just once');
  return true;
});

由于 皮特

2 个答案:

答案 0 :(得分:2)

pageReorder: function(feed, callback) {

    feed.masonry('reloadItems');
    feed.masonry('layout');

    feed.on( 'layoutComplete', function() {
       callback();
    });
},

这应该有效,根据经验,砌体的layoutComplete不能总是被信任。

答案 1 :(得分:2)

我发现在布局之前注册事件监听器时它最可靠。

假设feed是一个jquery元素:

feed.masonry({
  isInitLayout: false,
  transitionDuration: 0,});
var msnry = feed.data('masonry');

msnry.on( 'layoutComplete', function() {
  console.log('layout is complete, just once');
});
msnry.layout();