砌体和JQuery重装

时间:2015-04-10 16:38:01

标签: javascript php jquery html masonry

我正在使用来自http://masonry.desandro.com的Masonry项目,我正在尝试为我的用户创建时间轴效果。

我希望每隔一段时间自动刷新页面(10秒用于测试目的)但遇到了问题。在第一次加载时,它调用getStatus()函数,页面加载完美。但是在10秒之后,数据被重新加载并且masory被打破。

我想我尝试了每个组合时间来调用和调用库,但似乎没有任何效果。任何想法我如何让砌体每次都重新加载内容。当新数据(HTML)传递到页面时,基本上是否正确重建?我知道我这样做是错的,但这是我脚本块中的内容。

<script>
container = document.querySelector('#timeline-list');
        msnry = new Masonry( container, {
            // options
            columnWidth: '.col-sm-6',
            itemSelector: '.col-sm-6'
        });
        function getStatus() {
            $.getJSON('/community/get_status', function(data) {
                $('div#timeline-list').html(data.content);
                    msnry = new Masonry( container, {
                        // options
                        columnWidth: '.col-sm-6',
                        itemSelector: '.col-sm-6'
                    });
            });


            setTimeout("getStatus()",10000);
        }

        jQuery(window).load(function(){
            getStatus();
            if(jQuery(window).width() <= 640 ){
            msnry.destroy();
        }

            // check on resize
            jQuery(window).resize(function(){
                if(jQuery(this).width() <= 640 )
                    msnry.destroy();
            });

        });
    </script>

reload函数以HTML格式返回所有col-sm-6 div和数据。

我已经尝试过了.layout和.reloadedItems,但它们似乎都不起作用(或存在于它告诉我的内容。任何想法?谢谢!

1 个答案:

答案 0 :(得分:1)

你能更具体地说“破碎”吗? 也许您需要使用ImagesLoaded Masonry

如果我的记忆对我有用,那么它现在是一个单独的图书馆Images Loaded Source