在jQuery中重新检查一些东西?

时间:2010-11-06 21:31:10

标签: jquery pagination

基本上我有一个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每当我在第二次到达页面底部时,它都不会重做加载功能。顺便说一句,它确实是第一次工作。任何想法如何补救这个?控制台的东西是重新计算高度,以防万一是造成它的原因。

2 个答案:

答案 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)

  1. 你在$(“。empty-div”)上使用load(),这不会添加更多内容,它会替换内容(如果响应没有改变,你会看到没有变化)

    最好是

    $('<div/>').appendTo(".empty-div").load(/*****/)
    
  2. 也许DOCTYPE也存在问题。记录

    $(window).scrollTop(),  $(window).height() and  $(document).height() 
    

    也许,它在标准和quirks-mode之间有所不同。