第一次加载每个页面时,我有一个无限滚动JavaScript函数可以正常工作。
问题:访问其他页面时会再次调用该函数,导致第二次访问的页面的无限滚动重复结果重复(2x),下一页重复3次等等,当点击页面链接时,虽然在手动刷新每个页面时工作正常。
我无法将JS代码从每个视图移动到主布局视图,因为它需要在每个视图中运行其他JS代码。
我的问题:如何在访问每个页面时刷新/清除JS功能,以便重新开始?或者我有哪些替代方案?
这是每页分页上的代码:
$(document).on('ready page:load', function () {
var isLoading = false;
var num = 2;
if ($('.pagination').length) {
$(window).scroll(function(e) {
var url = $('.pagination .next_page').attr('href');
if (!isLoading) {
if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 1500) {
isLoading = true;
var newUrl = url.replace("page="+num-1, "page="+num);
$('#loader').html('<img src="/assets/gmloader.gif" alt="loading..." />');
setTimeout(function(){isLoading=false},1000);
num++;
return $.getScript(newUrl);
}
}
});
return $(window).scroll();
}
});
感谢您的帮助。