使用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,
});
一切似乎正常。没有错误。它给出:
但是,当“下一页” URL进入视口时,什么也没有发生。如果我监视“网络”选项卡,则不会请求/page/2
。
我不确定为什么这不起作用?在/page/2
和所有其他页面的响应中,它们被包装在一个名为items的类中:<div class="items"> ... </div>
所以我看不到为什么它不起作用,因为我告诉它正确的path:
和append:
选项。唯一的另一个是history:
,它设置为false
,因为我不希望它更改URL。没有控制台错误。
这是怎么回事?我对此无能为力,因为请求每个页面的URL在私有托管的应用程序上。