0

我对下面的代码有一点问题,它工作正常,但是,唯一的问题是,当有人在数据尚未加载的情况下向下滚动几次时,它会产生问题,例如两次加载相同的数据或跳过某些部分等。任何帮助将不胜感激,以控制此速度。

var num = 0;
$(window).scroll(function(){ 
    if ($(window).scrollTop() == $(document).height() - $(window).height()){
        num = num + 20;
            $.get('load_data.php?load=' + num, function(data){ 
                $('#result').append(data);
        }); 
    }
});
4

2 回答 2

1

一个可能的解决方案是在航路点上设置一个标志。

var flag = false;
var num = 0;
$(window).scroll(function(){ 
    if ($(window).scrollTop() == $(document).height() - $(window).height()){      
        if(!flag){
            num += 20;
            $.get('load_data.php?load=' + num, function(data){ 
                 $('#result').html(data);
                 flag = true;
            });
        }
    }
});

这只会触发加载的数据一次。这可以在页面上特定点的航点处触发。

于 2012-12-31T06:34:17.720 回答
1

这解决了它。

<script type='text/javascript'>
var num = 0;
var a = 1;
$(window).scroll(function(){ 
if ($(window).scrollTop() == $(document).height() - $(window).height()){

    if (a == 1) {
        a = 2;
        num = num + 20;
                $.get('load_data.php?url=<?php echo $url; ?>&load=' + num, function(data){ 
                        $('#result').append(data);
                         flag = true;
                         a = 1;
                });
    }

}
});
</script>
于 2012-12-31T07:05:58.963 回答