对动态创建的内容执行无限滚动

时间:2017-07-25 15:06:45

标签: javascript jquery

我有一个使用MySQL数据库加载内容的页面。用户可以使用几个按钮过滤内容,然后使用jQuery将此内容替换为动态提取的数据。我在无限滚动中使用的链接也会改变。但无限滚动插件似乎只采用相同的旧链接而不是新加载的链接来触发滚动。

我使用的jQuery infinity滚动插件

https://cdnjs.cloudflare.com/ajax/libs/jquery-infinitescroll/2.1.0/jquery.infinitescroll.js

这是我的代码

<div class="container" id="myposts">
<div class=”post”>
<p>my content</p>
</div>
</div>

<nav id="page-nav"><a href="myposts.php?page=2"></a></nav>

//jQuery code
$('#myposts').infinitescroll({
    navSelector  : '#page-nav',    // selector for the paged navigation 
        nextSelector : '#page-nav a',  // selector for the NEXT link (to page 2)
        itemSelector : '. post ',     //
        loading: {
                        finishedMsg: 'End of the page',
                        img: 'images/loader.gif'
    }
    }, function(newElements, data, url){

});

我正在改变

的滚动触发链接
<nav id="page-nav"><a href="myposts.php?page=2"></a></nav>

<nav id="page-nav"><a href="getposts.php?page=2"></a></nav>

但是插件仍然会使用旧链接来触发滚动。这有什么解决方案吗?感谢你的时间。

1 个答案:

答案 0 :(得分:0)

您可以收听append.infiniteScroll事件,然后从您的信息页更新链接 https://infinite-scroll.com/events.html#append
https://infinite-scroll.com/api.html#option

这样的事情:

$container.on( 'append.infiniteScroll', function( event, response, path, items ) {
  $container.infiniteScroll( 'nextSelector', '#page-nav a' )
});