在改一个页面的时候发现了奇怪的问题,绑定onscroll怎么都不成功。

$("#js_box").on("scroll",
    function() {
        #some code
    }
);

开始以为是在调整过程中把overflow-y: scroll;注释了造成的问题,取消注释还是不行。

几经周折后发现,之前绑定的是某个子元素,后来在调整的过程中,把父元素的定位改成了position: absolute;
发现在这种情况下,绑定子元素的onscroll就不成功。

感觉是因为绝对定位下页面整个就跟着往上滑,监测不到子元素的onscroll事件了。
于是改为监测整个窗口的onscroll,搞定。

$(window).on("scroll",
    function() {
        #some code
    }
);