这个jquery代码中的小逻辑问题:用jquery“加载”更多页面

时间:2014-10-20 10:23:21

标签: javascript jquery html

我在新闻索引页面中有很多article个div,其中每个div包含一个新闻预告片。

我想先显示10,然后在向下滚动到达底部时,我会显示另外10个等等。这是我的js。

$(function () {
  shown = 0;
  $('.artikel').hide();
  $('.artikel').each(function () {
    if (shown <= 10) {
        shown += 1;
        $(this).show();
    }
  });
  $(window).scroll(function () {
    if ($(window).scrollTop() + $(window).height() == $(document).height()) {

        setTimeout(function () {
            // problem here. 
            $('.artikel').each(function () {
                if (shown <= 20) {
                    shown += 1;
                    $(this).show();
                }
            });


        }, 1500);
    }
  });
});

我的逻辑中的问题是,一旦我滚动到底部,setTimeOut中的函数从头开始再次计算所有article s。

我希望它显示从上一篇文章开始的下一个10条新闻。请问有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以找到第一个隐藏的文章,然后显示以下几篇文章,这样您就不必计算到目前为止显示的数量:

var shownCount = 0;

$('.artikel:not(:visible)').each(function () {
    if (shownCount <= 10) {
        shownCount += 1;
        $(this).show();
    }