2014-09-22 3 views
0

Привет, я новичок в веб-разработке. Я изо всех сил борюсь с JS-функцией, используя Yii 1.1: isotope-jquery. Попытка показать галерею изображений каменной кладки с бесконечной прокруткой. Если я оставлю его, поскольку он работает, но при использовании изображений они все перекрываются в конце. я должен использовать imagesLoaded, но применяя подмигнули быть боль ...кладка + изотоп + imagesLoaded not defined yii

Оригинальный код:

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

Modified:

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 внутри, передавая параметры, но я не могу заставить его работать ...

вероятно подмигнул начинающий трейдер вопрос ...

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

+0

Использования изотопа или кирпичной кладке? Ваш код обновления имеет масонство – Macsupport

+0

i'm используя (пытается) режим макетирования макета, спасибо – user4055746

+0

Вы не дали достаточно информации, чтобы решить вашу проблему. Вам нужно разместить больше своего кода. Еще лучше, сделайте jsfiddle. Кроме того, вы используете кладку, но вы, похоже, загружаете изотоп (?) '[" ContentSelector ", div.items.isotope]' – Macsupport

ответ

1

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

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

благодаря @Macsupport