Triggers 如何在单击时触发/重新加载砌体插件

Triggers 如何在单击时触发/重新加载砌体插件,triggers,tabs,reload,jquery-masonry,Triggers,Tabs,Reload,Jquery Masonry,因为我有不同的选项卡,所以砌体不会加载隐藏的项目,所以当我单击一个新选项卡时,图像会相互堆叠,我知道以前有人问过这个问题,并通过单击该选项卡使用触发器砌体来回答这个问题,但我如何才能在不弄乱第一个选项卡的情况下进行此操作 目前正在使用 $(function(){ $('#container').masonry({ // options itemSelector : '.item', columnWidth : 260 }); });` $(window).load(function(){

因为我有不同的选项卡,所以砌体不会加载隐藏的项目,所以当我单击一个新选项卡时,图像会相互堆叠,我知道以前有人问过这个问题,并通过单击该选项卡使用触发器砌体来回答这个问题,但我如何才能在不弄乱第一个选项卡的情况下进行此操作

目前正在使用

$(function(){
$('#container').masonry({
// options
itemSelector : '.item',
columnWidth : 260
   });
});`
$(window).load(function(){   $('#container').masonry(); });
表2也一样,但ID不同-#container2


选项卡1可以正常工作,但选项卡2可以堆叠图像,直到您调整浏览器的大小,从而修复图像并正常工作

是,您可以在onclick事件上重新加载砖石视图,如下所示:-

使用
$container.mashine('reload')如果它对你有用。在我的情况下,这不是工作。我已经使用了
setTimeout(function(){$container.mashine()},400)。在
setTimeout
函数中调用

$(document).ready(function($) {
    var $container = $('#youContainerId');
    $("#TabId").live("click",function(){
        //$container.masonry('reload');
        setTimeout(function(){ $container.masonry() }, 400);
    });
});
这样做:

$(函数(){
$(“#容器”)。砌体({
//选择权
itemSelector:“.item”,
列宽:260
});
});
var masonryUpdate=函数(){
setTimeout(函数(){
$(“#容器”).mashine();
}, 500);
}
$(文档)。在('click',masonryUpdate)上;
$(文档).ajaxComplete(masonryUpdate);
别再担心了!或者,您可以在其他动画之后再次调用它,例如:

$('#something').slideDown(600, masonryUpdate);

即使您不这样做,也只需单击页面中的任意位置,砖石结构就会更新。

这是一个旧的解决方案,但它对我有很大帮助!谢谢仍然有效!