Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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?_Javascript_Jquery - Fatal编程技术网

如何修复无限滚动javascript?

如何修复无限滚动javascript?,javascript,jquery,Javascript,Jquery,我正在尝试使用下面的脚本无限滚动加载数据。初始数据加载正确,但似乎没有检测到滚动。我已尝试将警报添加到调试中,但似乎找不到问题。后端页面p_load.php工作正常。你知道可能是什么问题吗 $(document).ready(function() { var track_load = 0; //total loaded record group(s) var loading = false; //to prevents multipal ajax loads var t

我正在尝试使用下面的脚本无限滚动加载数据。初始数据加载正确,但似乎没有检测到滚动。我已尝试将警报添加到调试中,但似乎找不到问题。后端页面p_load.php工作正常。你知道可能是什么问题吗

$(document).ready(function() {
    var track_load = 0; //total loaded record group(s)
    var loading  = false; //to prevents multipal ajax loads
    var total_groups = 2; //total record group(s)   

    $('#result').load("p_load.php?t=", {'group_no':track_load}, function() {track_load++;}); //load first group

    $(window).scroll(function() {
        if($(window).scrollTop() + $(window).height() >= $(document).height()) {
            alert("Detected scrolling"); //not working
            if(track_load <= total_groups && loading==false) //there's more data to load
            {
                loading = true; //prevent further ajax loading
                $('.animation_image').show(); //show loading image

                //load data from the server using a HTTP POST request
                $.post('p_load.php?t=',{'group_no': track_load}, function(data){

                    $("#result").append(data); //append received data into the element

                    //hide loading image
                    $('.animation_image').hide(); //hide loading image once data is received

                    track_load++; //loaded group increment
                    loading = false; 

                }).fail(function(xhr, ajaxOptions, thrownError) { //any errors?

                    alert(thrownError); //alert with HTTP error
                    $('.animation_image').hide(); //hide loading image
                    loading = false;

                });

            }
        }
    });
});
$(文档).ready(函数(){
var track_load=0;//加载的记录组总数
var load=false;//防止多路径ajax加载
var total_groups=2;//记录组总数
$(“#result”).load(“p_load.php?t=”,{'group_no':track_load},function(){track_load++});//加载第一组
$(窗口)。滚动(函数(){
如果($(窗口).scrollTop()+$(窗口).height()>=$(文档).height()){
警报(“检测到滚动”);//不工作
如果(轨道负载请尝试:

  $(document).on('scroll', function () {
    if(window.scrollY + window.innerHeight >= document.body.scrollHeight) {
        //your code
    };
  });

您应该使用Intersection Observer API,这就是它的用途


尝试了这两种方法(外部就绪函数和您使用scrollY进行的修改)。运气不好。简单的警告无效。:(您看到窗口右侧的滚动行了吗?可能您的CSS在某处设置了“溢出:隐藏”。请尝试$(文档)。在('scroll',函数()而不是$(窗口)。问题已修复。它应该作为原始版本在ready函数中。只有它应该监视$(文档)。滚动(如您所建议的。请编辑答案以将其标记为已完成。