如何强制infiniteScroll考虑通过jQuery.html调用添加的动态内容

时间:2012-05-08 00:12:50

标签: jquery jquery-masonry infinite-scroll

我正在使用砌体+无限滚动,但是当我必须使用来自另一个ajax调用的HTML替换div的内容时,滚动停止工作,甚至很难使用nav元素。

因此,如果内容在页面首次加载无限滚动时出现,但是如果在此页面中我用来自ajax调用的HTML替换div的内容并包含无限滚动停止工作的元素。

任何想法

这是我的代码

$('#mainContainerHome').infinitescroll({
   navSelector  : '#page-nav',    // selector for the paged navigation
   nextSelector : '#page-nav a',  // selector for the NEXT link (to page 2)
   itemSelector : '.tile',     // selector for all items you'll retrieve
   loading: {
     finishedMsg: 'No more items.',
     img: 'http://i.imgur.com/6RMhx.gif'
     }
   },
   // trigger Masonry as a callback
   function( newElements ) {
     // hide new items while they are loading
     var $newElems = $( newElements ).css({ opacity: 0 });
     // ensure that images load before adding to masonry layout
     $newElems.imagesLoaded(function(){
     // show elems now they're ready
     $newElems.animate({ opacity: 1 });
     $('#mainContainerHome').masonry( 'appended', $newElems, true );
   });
}
);

我需要一种方法来告诉infiniteScroll重新开始并使用通过jQuery..html('xxxxx')添加的代码;言。

因为在用动态替换div的内容(它包含nav元素)后,无限滚动停止工作。

1 个答案:

答案 0 :(得分:0)

我对这些插件并不熟悉,但我想我能看到一些东西;尝试:

$('#mainContainerHome').append($newElems).masonry( 'appended', $newElems, true );