jQuery InfiniteScroll插件一遍又一遍地加载最后一页

cyc*_*ero 2 jquery infinite-scroll

我正在使用以下jQuery InfiniteScroll插件,它实际上可以工作,但一直在反复加载最后一页,它无法停止.这是我使用的代码:

$('#catalog').infinitescroll({

        navSelector  : "div.page-nav:last",            
                       // selector for the paged navigation (it will be hidden)
        nextSelector : "div.page-nav a.navnext:last",    
                       // selector for the NEXT link (to page 2)
        itemSelector : "#catalog div.single",          
                       // selector for all items you'll retrieve

        bufferPx     : 400
}); 
Run Code Online (Sandbox Code Playgroud)

我的分页看起来如下:

<div id="page-nav" class="page-nav"> 
    <div class="top">
        <a id="page-1" class="active">1</a>
        <a id="page-2" href="?page=2">2</a>
        <a id="page-3" href="?page=3">3</a>
        <a id="page-4" href="?page=4">4</a>
        <a id="page-5" href="?page=5">5</a>
        <a id="page-6" href="?page=6">6</a>
        <a id="page-7" href="?page=7">7</a>
        </div>
    <div class="bottom">
        <span class="right">
            <a class="navnext" href="?page=2" id="next-2">Next</a>
                <span class="next">Ctrl</span>
        </span>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

请问有人帮帮我吗?

谢谢.

cyc*_*ero 6

好.这实际上并不是Infinite Scroll插件中的错误.情况是,如果没有这样的页面,我的脚本没有返回404错误.它只是返回了一遍又一遍地附加到内容的最后一页.为了解决这个问题,我已经存储了我想要显示的所有页面的数量,在每个内容加载后增加了一个变量,并且在所有页面成功加载后解除了滚动.代码如下:

var curPage = 1;
var pagesNum = $("div.page-nav").find("a.pag:last").text();   // Number of pages

$('#catalog').infinitescroll({

        navSelector  : "div.page-nav:last",            
                       // selector for the paged navigation (it will be hidden)
        nextSelector : "div.page-nav a.navnext:last",    
                       // selector for the NEXT link (to page 2)
        itemSelector : "#catalog div.line",          
                       // selector for all items you'll retrieve

        bufferPx     : 800

        }, function() {  // Optional callback when new content is successfully loaded

            curPage++;

            if(curPage == pagesNum) {

                $(window).unbind('.infscr');

            } else {}

});
Run Code Online (Sandbox Code Playgroud)

我希望这会对别人有所帮助.

  • 在更新的版本中,您可以简单地包含参数`maxPage:pagesNum`(在您定义pagesNum之后)而不是回调函数. (2认同)