我正在创建一个“滚动到底部”新闻源,当用户滚动到页面底部时,该新闻源会填充新闻。
我有以下代码(通过 Check if a user has scrolled to the bottom ):
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
//Ajax Request
}
});
如何确保用户在完成 ajax 请求填充新闻之前不会向上滚动然后再次向下滚动。换句话说,有什么干净的方法可以暂停它,直到 ajax 请求完成并填充其结果
最佳答案
类似这样的事情:
var request_pending = false;
function at_bottom_of_page() {
return $(window).scrollTop() + $(window).height() > $(document).height() - 100;
}
$(window).scroll(function() {
if (request_pending) {
return;
}
if (at_bottom_of_page()) {
request_pending = true;
doAjax(function (moar_news) {
render_news(moar_news);
request_pending = false;
});
}
});
关于javascript - 如何停止监听事件直到ajax请求完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162092/