在jQuery .load()之后激活砌体

时间:2011-04-03 17:12:44

标签: javascript jquery jquery-masonry

如何在页面加载后激活JS和其他jquery函数,如砌体。

我用:

jQuery("#filterbox").load("mypage.html"}); works fine, but eg. mansory is not activated.
jQuery('#content #boxes').masonry({ columnWidth: 122, animate: true });

但第二个没有“激活”。

在.load期间没有激活css和js是正确的,如果,之后如何激活它。

感谢您的帮助..

/问候

4 个答案:

答案 0 :(得分:3)

试试这个:

jQuery("#filterbox").load("mypage.html", function(){
   $('#content #boxes').masonry({ columnWidth: 122, animate: true });
});

顺便说一下,}之后还有mypage.html

答案 1 :(得分:3)

由于jQuery.load是异步的,jQuery('#content #boxes').masonry将在调用jQuery.load后直接运行。你需要一种方法告诉jQuery你想在实际加载内容后执行该函数。

jQuery.load将回调函数作为第二个参数。加载内容后将执行此回调。试试这个:

jQuery("#filterbox").load("mypage.html", function() {
    jQuery('#content #boxes').masonry({ columnWidth: 122, animate: true });
});

继续阅读documentation for .load()

答案 2 :(得分:0)

试试这个

jQuery("#filterbox").load("mypage.html",function() {
      jQuery('#content #boxes').masonry({ columnWidth: 122, animate: true });
    });

答案 3 :(得分:0)

添加ImagesLoaded脚本 https://github.com/desandro/imagesloaded/blob/master/imagesloaded.js

尝试:

jQuery("#filterbox").load("mypage.html",function() {
    jQuery('#content').imagesLoaded(function() {
        jQuery(this).masonry({ itemSelector: '.box' });
    });
});

它对我有用,希望这对你也有帮助

我的示例(在导航中选择图库): http://test.crystalstudio.me/nms/