javascript - jQuery 砌体 - 砌体重新加载后调用方法

标签 javascript jquery twitter-bootstrap jquery-masonry

我使用 Twitter Bootstrap 和 jQuery Masonry 开发一个新网站。我将新元素添加到砌体容器中。

这些元素既不追加也不添加到现有子元素中,而是插入到它们之间,具体取决于这样的排序顺序:

var elem = $(boxes[rand2]);
$(".post").each(function(i){
    if(parseFloat($(this).data("weight"))<=weight){
        elem.insertBefore(this);
        return false;
    }
    else if (i == $(".post").length - 1) {
        elem.insertAfter(this);
        return false;
    }
});

目前为止一切正常。我想要实现的是元素仅在到达目的地时显示。我不想禁用动画,但新元素的空间应该出现(空),并且只有当所有内容都通过砌体重新排列时,新元素才会出现。

我以为会有一个像这样在重新加载后触发的回调操作:

$('#posts').masonry('reload',function(){
  alert('re-aligning finished');
});

但这不起作用,它会提前触发。

所以现在,我做了

$('#posts').masonry('reload',function(){
  window.setTimeout(showElem,500);
});
function showPosts(){
  $('.post').show();
}

这似乎可行 - 但固定的 500 毫秒超时并不是一个真正漂亮的解决方案......

那么,有什么建议吗?

最佳答案

我猜您已经在使用 jQuery。或许使用deferred对象可能会有用。

关于javascript - jQuery 砌体 - 砌体重新加载后调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773625/

相关文章:

javascript - 在模式对话框上显示 Bootstrap 框

javascript - 如何使用 jQuery 根据日期更改类

javascript - 如何提取正文请求 node.js

JavaScript $ ('myDiv' ).style.direction 总是返回空白?

javascript - 简单的 Angular 示例不起作用

html - 使用具有不同高度的 div 的 Bootstrap 列类

javascript - Meteor - 如何使用 {{each}} 在表中显示 mongoDB 中的多个数组?

php - Jquery Ajax 返回 NaN

javascript - 我如何屏蔽和取消屏蔽 HTML 标题文本

javascript - AJAX 自动完成