2012-11-14 62 views
0

我有一个页面可以重新加载(没问题),可以通过调用Ajax进行调用。jQuery同位素 - Ajax页面加载和初始化

当我把isotope插件的初始化代码放入$(document).ready时,我的同位素项目全部搞砸了。在$(window).load一切工作正常。

问题是,当通过Ajax调用页面时,load事件显然不会触发。

当我在Ajax回调中进行初始化时,我遇到了与$(document).ready中相同的问题。

我目前的解决方法是在我的$(document).ready中的setTimeout。这显然不是一个好的解决方案。

任何想法的一个很好的解决方案?

回答

4

尝试检查ajax是否已成功加载,然后调用同位素。

$.getScript("ajax.html", function(data,exception) { 
    if(exception === "success") 
    { 
     masonryBlocks(); 
    } 
}); 

function masonryBlocks(){ 
    $(function(){  
     var $container = $('#container'); 

     $container.isotope({ 
     itemSelector: '.box', 
     masonry: { 
      columnWidth: 1 
     } 
     }); 
    }); 
}