Javascript 在jQuery生成的div上使用massy.js

Javascript 在jQuery生成的div上使用massy.js,javascript,jquery,html,css,jquery-masonry,Javascript,Jquery,Html,Css,Jquery Masonry,前几天我找到了massy.js,并想开始在项目中使用它。为了练习,我决定尝试制作一个页面,每次我点击一个随机高度和颜色的按钮时,都会生成16个div,并观察它们的正确位置。问题是,它不起作用了。div生成得很好,问题似乎是让砌体从生成的div重新计算容器的高度。如果容器上没有高度,则砌体无法计算任何其他div的适当高度。我曾尝试在容器上使用clearfix来确保它围绕嵌套元素展开,但没有成功。有人能帮忙吗 您需要使用addItems添加项目或销毁并重新创建以重新计算: 您还可以重新加载和布局:

前几天我找到了massy.js,并想开始在项目中使用它。为了练习,我决定尝试制作一个页面,每次我点击一个随机高度和颜色的按钮时,都会生成16个div,并观察它们的正确位置。问题是,它不起作用了。div生成得很好,问题似乎是让砌体从生成的div重新计算容器的高度。如果容器上没有高度,则砌体无法计算任何其他div的适当高度。我曾尝试在容器上使用clearfix来确保它围绕嵌套元素展开,但没有成功。有人能帮忙吗


您需要使用addItems添加项目或销毁并重新创建以重新计算:

您还可以重新加载和布局:

//Reload Masonry
$wall.masonry('reloadItems');
$wall.masonry('layout');

回答得很好,两种方法都有效。第二个答案有一个有趣的效果:在顶部0、左侧0生成所有div,然后它们快速转换到它们的位置。有了第一个答案,演员们就出现在他们的位置上了。非常感谢。
//Reload Masonry
$wall.masonry('reloadItems');
$wall.masonry('layout');