Jquery 在显示新项目后重新加载砌体容器不会';不行?

Jquery 在显示新项目后重新加载砌体容器不会';不行?,jquery,jquery-masonry,Jquery,Jquery Masonry,这里有点问题。我需要有一堆项目隐藏时,该网站首次加载,并只有在我点击一个按钮后才出现。在我的doc.ready顶部,我有以下内容: $('#showall').hide(); 它成功地隐藏了我需要隐藏的卡(显然)。然后我试图解开它们,重新装上砖石容器,但它似乎不起作用 var container = document.querySelector('.comparison-cards'); var msnry = new Masonry(container, { // options

这里有点问题。我需要有一堆项目隐藏时,该网站首次加载,并只有在我点击一个按钮后才出现。在我的doc.ready顶部,我有以下内容:

$('#showall').hide();
它成功地隐藏了我需要隐藏的卡(显然)。然后我试图解开它们,重新装上砖石容器,但它似乎不起作用

var container = document.querySelector('.comparison-cards');
var msnry = new Masonry(container, {
    // options
    itemSelector: '.card',
    gutter: 20,
    isFitWidth: true
});

$('.button').click(function () {
    $('#showall').show();
    msnry.reloadItems();
});
这有什么原因不起作用吗?我做错什么了吗?有更好的方法吗?为了澄清,我隐藏的卡与我最初显示的卡具有相同的类别,只是显示了不同的id


感谢您提供的任何帮助!:-)

我通过组合使用jquery show()和hide()以及mashise remove()和addItems()解决了这个问题:

    $('.button').click(function () {

    if (buttonClicked == false) {
        $(testArray).show();
        msnry.addItems(testArray);
        $(container).append(testArray);
        msnry.appended(testArray);
        msnry.reloadItems();
        msnry.layout();
        $('.button').html('SHOW LESS');
        buttonClicked = true;
        console.log(buttonClicked);
    } else {
        msnry.remove(testArray);
        msnry.layout();
        $('.button').html('SHOW ALL');
        buttonClicked = false;
        console.log(buttonClicked);
    }

});