2014-09-22 98 views
0

你好,我刚刚开始web开发。我正在使用Yii 1.1的JS函数挣扎:isotope-jquery。试图展示无限滚动的砌体图库。如果我保留原样,但是在使用图像时,它们会在最后重叠。我应该使用imagesLoaded,但应用it's正在痛苦......砌体+同位素+ imagesLoaded没有定义yii

原始代码:

$defaultCallback=" 
     function(newElements) { 
     /* hide new items while they are loading*/ 
     var newElems = jQuery(newElements); 
     \$isoContainer.isotope('appended', newElems, true); 
     {$this->infiniteCallback} 
     }"; 

修改:

["math:", 222, 2853] jquery.infinitescroll.js:171 
["math:", 0, 2853] jquery.infinitescroll.js:171 
["heading into ajax", Array[2]] jquery.infinitescroll.js:171 
["Using HTML via .load() method"] jquery.infinitescroll.js:171 
["contentSelector", div.items.isotope] jquery.infinitescroll.js:171 
Uncaught ReferenceError: $newElems is not defined index.php?r=products:112(anonymous function) index.php?r=products:112opts.callback jquery.infinitescroll.js:159infscr_loadcallback jquery.infinitescroll.js:327infscr_ajax_callback jquery.infinitescroll.js:501jQuery.extend.each jquery.js:595jQuery.fn.jQuery.each jquery.js:241jQuery.ajax.complete jquery.js:7465fire jquery.js:974self.fireWith jquery.js:1084done jquery.js:7818callback 

function(newElements) { 
     /* hide new items while they are loading*/ 
     var newElems = jQuery(newElements); 
     \$newElems.imagesLoaded(function(){   
      \$isoContainer.masonry('insert', newElems); 
     }); 
     {$this->infiniteCallback} 
     }" 

浏览器控制台上的错误

我已经尝试了几个东西,定义里面的var,传递参数,但是我不能让它工作...

可能it's一个新手的问​​题...

感谢您的帮助

+0

使用同位素或砖石?您的更新代码已砌筑 – Macsupport 2014-09-22 22:31:12

+0

我正在使用(尝试)砌体布局模式,谢谢 – user4055746 2014-09-23 12:41:54

+0

您尚未提供足够的信息来解决您的问题。你需要发布更多的代码。更好的是,做一个jsfiddle。另外,你使用砌体,但你似乎正在加载同位素(?)'[“contentSelector”,div.items.isotope]' – Macsupport 2014-09-23 13:29:39

回答

1

所以这是解决方案,以及工程就像一个魅力!

function(newElements) { 
     /* hide new items while they are loading*/ 
     var newElems = jQuery(newElements); 
     \$isoContainer.imagesLoaded(function(){   
     \$isoContainer.isotope('appended', newElems,true); 
     }); 

感谢@Macsupport