Jquery 如何使用同位素中的动态容器?

Jquery 如何使用同位素中的动态容器?,jquery,css,jquery-masonry,jquery-isotope,Jquery,Css,Jquery Masonry,Jquery Isotope,在web应用程序的不同部分上重复使用同位素容器的上下文中,我需要调整容器的大小。但是,在为小布局添加和删除CSS类之后,容器不再占用全部空间 请参阅JSFIDLE: 这将按预期调整容器的大小 $container.removeClass('small'); $container.isotope('shuffle'); 预计将取回原始容器。这是行不通的 有什么线索可以让设置工作吗?这看起来像是一个时间问题,这在同位素方面经常发生 如果在shuffle方法周围放置1000ms的setTimeo

在web应用程序的不同部分上重复使用同位素容器的上下文中,我需要调整容器的大小。但是,在为小布局添加和删除CSS类之后,容器不再占用全部空间

请参阅JSFIDLE:

这将按预期调整容器的大小

 $container.removeClass('small');
 $container.isotope('shuffle');
预计将取回原始容器。这是行不通的


有什么线索可以让设置工作吗?

这看起来像是一个时间问题,这在同位素方面经常发生

如果在shuffle方法周围放置1000ms的setTimeout(),它会工作-因此确认问题

$('#large').click(function(){
    $container.removeClass('small');
    var timer = setTimeout(function(){
        $container.isotope('shuffle');      
    },1000);
});
超时一点也不理想,但它确实说明了同位素需要在更新之前完成。我建议使用不同的计时器进行测试,直到找到合适的计时器为止


我还建议使用
$container.isotophet('reLayout')
而不是
$container.isotophet('shuffle')
,除非您特别需要洗牌项目,否则创建该方法正是为了这样做。

您添加了一个小类,但删除了一个不存在的大类?它不应该是:$container.removeClass('small')?对,小提琴有问题。这就是想法:非常有用。。。我要探索那条路线!
$('#large').click(function(){
    $container.removeClass('small');
    var timer = setTimeout(function(){
        $container.isotope('shuffle');      
    },1000);
});