我有这样的代码:重置一个函数,或者停止某些操作并重新启动它?
$(document).ready(function() {
var number = 10;
var offset = 10;
var page_number = 2;
/* Bind the scroll function to an event */
$(window).bind('scroll', function(e) {
/* If the scroll height plus the window height is
more than the document height minus 10, continue */
if($(window).scrollTop() + $(window).height() >
$(document).height() - 10) {
/* Quick message so you know more stuff is loading */
$('.loading-more').html('Keep scrolling for more posts to load..');
$.post('<?php bloginfo('siteurl') ?>/wp-admin/admin-ajax.php', {
action: 'and_action',
off: offset+number,
pagenumber: page_number - 1
}, function(data) {
offset = offset+number;
$('.empty-div').append('<p><strong>Page '+page_number+'</strong></p><br />'+data);
page_number += 1;
$(this).unbind(e);
});
}
});
});
此检查用户是否是靠近页面和负载更多的内容的底部。问题在于,如果用户在临界点附近缓慢滚动,或者反复滚动一遍又一遍,速度很快,则函数会运行几次,这意味着您最终会加载一些我正在加载的数据实例。
我曾尝试过的做法是绑定和解除绑定e
变量,但它并没有很好的工作。无论如何可能会运行一次函数post
,然后重新设置函数,所以当用户再次滚动时它会再次运行,所以不会加载一个以上的数据实例?