我正在尝试在滚动期间进行延迟加载。下面是代码:

$(window).scroll(
            function() {


                if ($(window).scrollTop() > ($(document).height() - $(window).height() - 200) && !loadNews))

                {
                        loadNews = true;
                        loadMoreNewsItems();

                }
            });


LoadMoreNewsItems()进行AJAX调用并追加数据,如果AJAX调用成功,则将loadNews标志再次设置为false。

以上实现正确吗?由于newsitems下面的页脚块,我减去了200。

当我们检查时,有时用户必须滚动到页脚以加载更多新站点。我正在移动设备上进行检查。这里可能是什么?

而且,有时当我们快速滚动时,会有多个AJAX请求。但是,我添加了loadNews标志来避免这种情况。但是,它也不起作用。

请帮忙。

最佳答案

这就是我用来无限滚动的方式

var d=document;
var remainingHeight=d.scrollHeight - d.clientHeight - (d.scrollTop || document.body.scrollTop);

if(remainingHeight < 500){
     //do the loading process
}


您应该尝试一下它而不是当前的测试,它应该可以解决手机的问题。

另外,关于多个ajax请求和您的标志,问题是&&!loadNews未正确放置在您的测试中,它位于错误的括号内。

07-26 05:47