重新组织所有元素';在使用jquery隐藏元素之后

重新组织所有元素';在使用jquery隐藏元素之后,jquery,Jquery,我正在隐藏一个li,在隐藏它之后,html中还有一个空白,我想重新加载并重新排列 内容。我试过了。砖石(‘重新加载’)但我没有工作。有什么帮助吗 拨弄 JS 您可以隐藏li元素并删除.item类以对元素重新排序 jquery本身有一个名为“hide”()的方法 像这样使用它: $('#container').masonry( 'hide', $('#container ul li').eq(2) ).masonry(); 最后一个圬工()调用实现了您想要的功能:“重新加载”瓷砖要回答Lewi

我正在隐藏一个li,在隐藏它之后,html中还有一个空白,我想重新加载并重新排列 内容。我试过了。砖石(‘重新加载’)但我没有工作。有什么帮助吗

拨弄

JS


您可以隐藏li元素并删除.item类以对元素重新排序


jquery本身有一个名为“hide”()的方法

像这样使用它:

$('#container').masonry( 'hide', $('#container ul li').eq(2) ).masonry();

最后一个圬工()调用实现了您想要的功能:“重新加载”瓷砖

要回答Lewis的评论并为在v3中寻找解决方案的人提供答案,在v3中隐藏方法不再存在,您只需使用jquery的hide()方法,然后触发圬工布局。 所以这个想法是为了隐藏元素:

$('.something-to-hide').each(function(){
   $(this).hide();
});
$('.grid').masonry('layout'); //we assume grid is your class use to masonry container.
$('.class-for-all-elements').show()
$('.grid').masonry('layout');
然后,要显示隐藏的元素,请执行以下操作:

$('.something-to-hide').each(function(){
   $(this).hide();
});
$('.grid').masonry('layout'); //we assume grid is your class use to masonry container.
$('.class-for-all-elements').show()
$('.grid').masonry('layout');
在我的例子中,我添加了一些在隐藏之前进行搜索的内容,这就是我使用each()函数的原因


Stéphane

看来砖石公司希望你完全移除该物品:谢谢你的回答。有没有办法以有组织的方式显示隐藏的元素?只需添加.item类并再次显示元素。请考虑将代码添加到答案中,以防链接断开。JSFiddle不做任何事情……@查克小提琴是~3岁:-P看起来像JRyr.MasRy.M.js我的HREF……到2017年5月,这已经不是什么东西了。文件中也未提及此方法:(