基本上我有一个jQuery函数,可以检查用户是否在页面底部附近并加载更多内容。当文档加载时,运行,检查。
<script type="text/javascript">
$(document).ready(function() {
var number = 5;
offset = 0;
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() > $(document).height() - 10) {
$(".empty-div").append().load('<?php bloginfo('template_url'); ?>/ajax.php?offset='+offset+number, function() {
var offset = offset+number;
setTimeout(function(){ console.log('after', $(document).height()); }, 0);
setTimeout(function(){ console.log('after', $(window).height()); }, 0);
});
}
});
});
</script>
H / e每当我在第二次到达页面底部时,它都不会重做加载功能。顺便说一句,它确实是第一次工作。任何想法如何补救这个?控制台的东西是重新计算高度,以防万一是造成它的原因。
答案 0 :(得分:3)
通过这样做:
var offset = offset+number;
您正在创建新本地offset
变量,而不是更新原始
offset = 0;
在函数之前声明,因此:?offset='+offset+number
始终使用offset
作为0
,因为它永远不会更新。只需删除var
,如下所示:
offset = offset+number;
为了清洁,还要在原始声明中添加var
,或使用逗号进行多重声明,如下所示:
var number = 5, offset = 0;
答案 1 :(得分:1)
你在$(“。empty-div”)上使用load(),这不会添加更多内容,它会替换内容(如果响应没有改变,你会看到没有变化)
最好是
$('<div/>').appendTo(".empty-div").load(/*****/)
也许DOCTYPE也存在问题。记录
$(window).scrollTop(), $(window).height() and $(document).height()
也许,它在标准和quirks-mode之间有所不同。