如何在加载新的HTML内容时阻止自动滚动事件?

时间:2013-04-05 07:11:15

标签: javascript jquery

我正在使用window.scroll()函数在滚动时将更多html内容附加到DIV持有者。我在每个滚动事件上加载10..10。但是在加载前10个内容之后,文档大小增加,因此浏览器自动滚动并调用loadContent函数并附加新内容而不用手动滚动。我可以阻止这种机制。我只需要在用户时加载更多内容滚动按钮。

$(function(){
  var loading = true;
  $(window).scroll(function(){
  if ( loading && $(window).scrollTop() + $(window).height() > $(document).height() - 100 ){
        loading = false;
        loadContents();
        loading = true;
 }
 });
 )};

还有其他更好的方法来执行无限滚动功能吗?

1 个答案:

答案 0 :(得分:1)

通常使用布尔标志,就像你正在做的是如何处理它。通常虽然数据是使用ajax填充的,但loading将被更改。您loading的值似乎也相反。

$(function(){
    var loading = false;
    $(window).scroll(function(){
        if ( !loading && $(window).scrollTop() + $(window).height() > $(document).height() - 100 ){
            loading = true;
            loadContents();
        }
    });

    function loadContents() {
        $.ajax({
            ...,
            success: function () {
                // add new data
                loading = false;
            }
        });
    }
)};