如何委派滚动事件

时间:2016-01-22 07:47:32

标签: jquery scroll event-delegation

我知道jquery不支持委托滚动事件。 所以我想知道正确的做法吗?

    jQuery(document).scroll(function ()
    {

    var st = jQuery(this).scrollTop();

    if (st < lastScrollTop)//if scroll up
       {
           if(jQuery('h1').isOnScreen())
           {
             console.log('I found my element');
           }
        }
   //scroll down
    else
      {
       //make an ajax call based on few conditions append elements to dom
      } 
      lastScrollTop = st;

  }); 

因此,当我向下滚动ajax时,调用并将新元素添加到DOM中。但是当我向上滚动时,在当前视口中找不到新元素,但只发现了存在的初始元素? 那么如何在当前视口中发现新添加的元素?

编辑1:

所以我已经找到了使用两个堆栈的问题的解决方案

if (scrollUp)
{

  if(currentScrollTop < S1.peek())
  {

    if(S1.size() > 0)
     {
      S2.push(S1.pop())
      console.log("I am back");
     //change history
     }

}
else
{

    //onAjaxSuccess
    while(!S2.isEmpty())
      S1.push(S2.pop())

    S1.push(currentScrollTop);//push new 


}

0 个答案:

没有答案