jQuery'滚动'没有触发

Mic*_*k R 1 html javascript jquery

我有以下内容:

 var onScroll = function () {
        alert('scroll');
 };
 scrollArea = $('body');
 scrollArea.on('scroll', onScroll);
Run Code Online (Sandbox Code Playgroud)

我可以做$('body').scrollTop(400),身体滚动得很好,但是alert当我手动滚动时,它永远不会被调用.可能是什么导致了这个?

Yog*_*try 6

当你滚动页面时,window那就是滚动而不是body.所以改成它$(window).on('scroll', onScroll);

编辑:如果你想body特别绑定它,你可以使用它document.body.onscroll = onScroll;.但请确保在这种情况下不绑定任何onscroll事件window.如果你这样做,document.body.onscroll将被忽略window.onscroll并将被听取.

此处的小提琴链接中查看此操作.


Lup*_*abs 5

不要使用 $('body'),而是使用 $(document) 或 $(window) 来捕获滚动,如下所示:

$(document).ready(function() {
    $(document).scroll(function() {
    console.log('Scrolled to ' + $(this).scrollTop());
  })
});
Run Code Online (Sandbox Code Playgroud)

这是一个工作的 jsFiddle: https ://jsfiddle.net/4rrm3myL/1/