繁体   English   中英

JavaScript-跟踪滚动事件

[英]javascript - track scroll event

我有一个流氓滚动事件,每次使用Ajax加载div元素时,该事件都会自动将页面滚动到顶部。 我该如何追踪呢? 我试过在滚动事件处理程序中设置断点并查看调用栈,但这并没有提供任何有用的信息,因为它只是显示了来自jquery的断点,但我想知道哪个DOM元素上的哪个事件导致了滚动。

有点背景,单击div元素(onclick)时,我正在使用Ajax加载div元素。 注意这不是锚! 但是,每当我关闭页面或在页面底部时,将div元素加载并添加到页面后,页面就会一直滚动到顶部。 确实很烦人,并试图找出引发该恶意滚动的元素...

谢谢!

如果您不介意使用jQuery插件,请尝试查看Waypoint插件 ,此插件非常适合跟踪/处理滚动

如果我很好理解,则需要与此类似的代码,在此代码中,当用户(通过滚动)到最后一个元素(在这种情况下为div.newDeal)达到4000像素的距离时,我将显示来自ajax的新数据:最后)(网络很长)。

$(document).ready(function() {

//global variable in this script to test if I already made the request ajax ( I dont 
//want to make continious ajax request)
var loaded=false;


$(window).bind('scroll', handlerScroll); //attach event to the scroll


})//end document ready

//FIRE AUTOSCROLL (FIRE REQUEST AJAX)
//*************************************

var handlerScroll=function (){

    //get position of the scroll
    var space=$('#listdeals div.newDeal:last').offset().top - $(window).scrollTop();
    //if that distance is less than (or the middle, or the bottom). fire the request ajax
    if  (space<= 4000  &&     jQuery('div.previousDeal').size()==0){  

        //disable scroll event
        $(window).unbind();



        //
        //build data post
        //
        var  parameters="actionAutoscroll=true&"+.........;

        //MAKE REQUEST AJAX
        //********************

        $.ajax({  
            url: "/offers",  
            type:'POST',  
            data: parameters,   
            success: process_previousDeals       
        });  //end ajax


        return false;

    }
}//end if  load previous deals depending of scroll

}//end handler


function process_previousDeals(results){
 //inject new content in the page
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM