jquery - nextSelector 在无限滚动中不更新

标签 jquery infinite-scroll

我的页面上有 2 个选项卡,每个选项卡都有 infinite-scroll对于不同的内容。 当选项卡切换时,将调用如下函数:

function callInfScroll(newlink){
var $container = '#main';
$('#page-nav').find('a').attr('href',newlink);
$container.load(newlink, function(){
  $container.infinitescroll({
    loading: {
        finishedMsg: "This is it"
    },

    navSelector  : '#page-nav',
           // selector for the paged navigation 
    nextSelector : '#page-nav a',
                   // selector for the NEXT link (to page 2)
    itemSelector : '.item',
                   // selector for all items you'll retrieve
    errorCallback: function(){
        $('#page-nav').html("Congratulations! You have reached the end of internet.");
        $('#page-nav').css({display: 'block'});
    }
  });

});
}

问题是,即使 #page-nav a 的值正在更改,但该更改不会反射(reflect)在无限滚动中,并且它仍然采用第一个选项卡中的旧值。

编辑: 我的 HTML :

    <div id="main-container" class="span8">
        <div id="main">
        </div>
        <div id="page-nav">
            <a href=""></a>
        </div>    

    </div>

最佳答案

我知道您已经很久没有遇到这个问题了。但我今天遇到了同样的问题,花了一段时间才解决。但我终于做到了。

该插件将路径和当前页面存储在某个变量中...因此,如果您更改 page_nav href 并不重要。

所以你不仅需要更改url,还需要更改插件存储的变量。

首先,您需要了解无限滚动将您的 URL 分成两部分:URL 和下一页编号。

将此视为您的 page_nav。

<div id="page_nav" style="display: none;">
    <a href="http://localhost/trunx/blog/page/all/4">Próxima Página »</a>
</div>

在这种情况下,插件将我的 URL 存储到 opts.path[0]

http://localhost/trunx/blog/page/all/

并将当前页面存储到opts.state.currPage

假设您的新网址如下:

http://localhost/trunx/blog/page/programing/1

您可以看到,在这个新网址中,我将类别从全部更改为编程,并将页面从4更改为1

我所做的是:

var newPath = 'http://localhost/trunx/blog/page/programing/';
var newPage = 1;

// Changes the page_nav href.
$('#page_nav a').attr('href', newPath+newPage);

// Changes the plugin's stored variables
$('.postsBlog').infinitescroll({path:[newPath,''],state: {currPage:newPage-1}});

// This resets the pagination binder so if you had reached the end,it will now start paginating again.
$('.postsBlog').infinitescroll('bind');

考虑.postsBlog是应用infiniteScroll的容器。

您可以看到,当我设置新的 currPage 时,我从中减去 1。这是因为无限滚动在设置下一页时会自动加1。

关于jquery - nextSelector 在无限滚动中不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15427563/

相关文章:

javascript - 将每个 div 插入数组,然后将它们加入 html 替代方案

c# - 给 JSON 对象什么类型

javascript - 添加加载更多帖子按钮

java - libgdx 上的无限滚动背景

带有 + 和 - 的 jQuery Accordion 式常见问题解答

javascript - HTML CSS 用 ul 包装 li

javascript - 发出AJAX请求时如何显示进度?

ios - 为什么我的 "pull down to load data"卡在第 2 页而没有加载更多数据

javascript - 在 Masonry 的 container.append 上出现错误 Uncaught TypeError : Object has no method filter

javascript - 具有命名函数的 window.removeEventListener 不起作用