Infinite Scroll没有加载ajax分页数据

时间:2019-08-08 11:04:59

标签: jquery html infinite-scroll

使用https://infinite-scroll.com/

我的应用程序发出ajax请求以获取分页数据。每个页面的端点都可以正常工作,我可以通过检查响应进行测试,例如

https://example.com/page/1
https://example.com/page/2
https://example.com/page/3

我正在使用jquery(3.2.1)发出ajax请求,以便在初始加载页面时将“第1页”填充到div中:

var filtersDiv = '.wizard-step1-ctp__filters .col-12';

$(filtersDiv).html('<p class="loading">Loading...</p>');

$.get({url: '/page/1', cache: false }).done(function(response) {
    $(filtersDiv).html(response);
});

这有效。

返回的每个页面(page/1/page/2等)都包含一个锚类,其类别为.pagination__next,其中包含下一页的URL。例如,在“第1页”的末尾,我们有以下内容:

<li><a class="pagination__next" aria-label="Next" href="/page/2">Next page</a></li>

如果我在第1页的ajax请求完成后甚至在控制台中运行了此命令:

$('.wizard-step1-ctp__filters .col-12').infiniteScroll({
    path: '.pagination__next',
    append: '.items',
    history: false,
});

一切似乎正常。没有错误。它给出:

enter image description here

但是,当“下一页” URL进入视口时,什么也没有发生。如果我监视“网络”选项卡,则不会请求/page/2

我不确定为什么这不起作用?在/page/2和所有其他页面的响应中,它们被包装在一个名为items的类中:<div class="items"> ... </div>

所以我看不到为什么它不起作用,因为我告诉它正确的path:append:选项。唯一的另一个是history:,它设置为false,因为我不希望它更改URL。没有控制台错误。

这是怎么回事?我对此无能为力,因为请求每个页面的URL在私有托管的应用程序上。

0 个答案:

没有答案