Кладка + изотоп + изображения не загружены

Здравствуйте, я новичок в веб-разработке. Я борюсь с функцией JS, используя Yii 1.1: 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

Я пробовал несколько вещей, определяя переменную внутри, передавая параметры, но я не могу заставить его работать...

возможно, это проблема новичка...

Спасибо за вашу помощь

1 ответ

Решение

Так что это решение, и работает как шарм!

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

спасибо @Macsupport

Другие вопросы по тегам