我制作了一个 jQuery 脚本,当用户滚动时从数据库中加载项目。唯一的问题是,当用户在页面加载后快速滚动时,脚本的结果会加倍,因此来自数据库的信息会显示两次。不太确定这里发生了什么,但脚本如下。顺便说一句,这一切都准备好了。
function last_item_funtion()
{
var ID=$(".newsItem:last").attr("id");
$('#feedLoader').html('<img src="../files/images/bigLoader.gif" style="display:block;margin-left:auto;margin-right:auto;">');
$.post("AJAX/scroll_feed.php?action=get&last_item_id="+ID,
function(data){
if (data != "") {
$(".newsItem:last").after(data);
}
$('#feedLoader').empty();
});
};
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
last_item_funtion();
}
});
这不是我的jsfiddle,但它简而言之显示了脚本的作用。它没有显示我遇到的问题,但我无法复制它,因为我无法将整个数据库放在 jsfiddle 上。
更新 玩完游戏后,我意识到不是用户在页面加载后直接滚动,而是用户连续滚动而不是短滚动。由此我猜测jQuery不会注册数据已经加载,直到滚动停止。