在滚动事件上跟踪页码

时间:2014-11-14 10:53:17

标签: javascript jquery html ajax html5

我有一个网页,将在加载时加载第一页的内容。一旦用户滚动页面,我就使用ajax调用加载剩余页面的内容。这里出了什么问题,我有一个变量,它将被初始化为2(因为在加载页面时加载了第一页)以跟踪页码。我想的是,一旦用户滚动,我会增加此变量,以便指向下一页。但它不起作用。在ajax调用结束之前它会增加。所以它遗漏了许多页面。谁能告诉我更好的方法呢?这是代码..

var pageNo = 2;

$(window).scroll(function() { if($(window).scrollTop() == $(document).height() -$(window).height()) {

    console.log('pageNo ' + pageNo);
    $.ajax({
        type: 'POST',
        cache: false,
        dataType: 'json',
        url: 'url'+pageNo,
        success: function(data, status, xhr) {
        $.each(data,function(i, item) {
           var tp = $('content');
           $('#trpcontainer').append(tp);
        });
    },
    error: function(jqXHR, textStatus, errorThrown) {

    }
});
}
  pageNo = pageNo + 1;
}); 

1 个答案:

答案 0 :(得分:1)

试试这个 Example

需要一些修改,因为还要计算UP滚动

<强> HTML

  <div>Try scrolling the iframe.</div>
  <p>Paragraph - <span>Scroll happened!</span></p>

<强> JS

  $( "p" ).clone().appendTo( document.body );
  $( "p" ).clone().appendTo( document.body );
  $( "p" ).clone().appendTo( document.body );
  $( "p" ).clone().appendTo( document.body );
  $( "p" ).clone().appendTo( document.body );
  var pag=0; 
  $( window ).scroll(function() {
  pag+=1;
  $( "span" ).css( "display", "inline").append(pag); 
  });