砌体+同位素+ imagesLoaded未定义yii

时间:2014-09-22 22:28:13

标签: javascript yii jquery-isotope yii-extensions masonry

你好,我是网络开发的新手。我正在努力使用Yii 1.1的JS函数:isotope-jquery。试图显示具有无限滚动的砖石图库。如果我保留原样它可以工作,但是当使用图像时,它们会在最后重叠。我应该使用imagesLoaded,但应用它是一种痛苦......

原始代码:

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

修改:

function( newElements ) { 
        /* hide new items while they are loading*/ 
        var newElems = jQuery( newElements );
        \$newElems.imagesLoaded(function(){         
            \$isoContainer.masonry( 'insert', newElems);
        });
        {$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

我尝试了几件事,定义var里面,传递参数,但我不能让它工作......

可能是一个新手问题...

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

所以这就是解决方案,就像魅力一样!

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

感谢@Macsupport