Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery在滚动速度上加载更多_Javascript_Jquery - Fatal编程技术网

Javascript Jquery在滚动速度上加载更多

Javascript Jquery在滚动速度上加载更多,javascript,jquery,Javascript,Jquery,我对下面的代码有一点问题,它工作正常,但是,唯一的问题是,当有人在数据未加载的情况下向下滚动几次时,会产生问题,例如加载相同的数据两次或跳过某些部分,等等。。任何帮助都将非常感谢,以控制这一速度 var num = 0; $(window).scroll(function(){ if ($(window).scrollTop() == $(document).height() - $(window).height()){ num = num + 20;

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

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);
        }); 
    }
});

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

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;
            });
        }
    }
});
这将只触发加载的数据一次。 这可以在页面上特定点的航路点发射。

这就解决了这个问题

<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>

var num=0;
var a=1;
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
如果(a==1){
a=2;
num=num+20;
$.get('load_data.php?url=&load='+num,函数(数据){
$(“#结果”)。追加(数据);
flag=true;
a=1;
});
}
}
});

感谢您的回答,但是,当我输入上述代码时,仍然存在问题,即它加载20行,然后加载20个新的,然后加载20个旧的,等等:(可能与var num有关。在代码中添加了一个编辑。请尝试在if语句中使用增量。另外,为了避免附加到旧的HTML,请尝试使用HTML()函数替换加载的节点。让我知道这是如何工作的。很高兴听到这个消息。它看起来与我在上面使用的原则相同。干杯。