Javascript jQuery圬工-重新加载圬工后调用方法

Javascript jQuery圬工-重新加载圬工后调用方法,javascript,jquery,twitter-bootstrap,jquery-masonry,Javascript,Jquery,Twitter Bootstrap,Jquery Masonry,我使用Twitter引导和jQuery构建了一个正在开发的新站点。我将新元素添加到砖石容器中 元素既不附加到现有子元素,也不在其前面添加,而是插入到它们之间,具体取决于如下排序顺序: var elem = $(boxes[rand2]); $(".post").each(function(i){ if(parseFloat($(this).data("weight"))<=weight){ elem.insertBefore(this); retur

我使用Twitter引导和jQuery构建了一个正在开发的新站点。我将新元素添加到砖石容器中

元素既不附加到现有子元素,也不在其前面添加,而是插入到它们之间,具体取决于如下排序顺序:

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了。也许使用对象会很有用。

您能在文档加载后再这样做吗

(function($) {
$(document).ready(documentReadyFunction);
$(window).resize(windowResizeFunction);
$(window).load(windowLoadFunction);
function documentReadyFunction() {
    //your inserted html here
}
function windowResizeFunction() {
    //resize here
}
function windowLoadFunction() {
    //do masonry here
}
})(jQuery);

你能创建一个你想要解决的问题吗?我猜。砌体函数是一个延迟对象。因此,简单地使用.done()将其绑定可能会起作用。。。但是我不确定它是否会返回一个延迟的消息。尝试一下不幸的是,这不起作用:(也许我只是坚持我的500毫秒超时,它不是那么糟糕,但并不漂亮