jQuery 滚动事件未触发

jQuery on scroll event not firing

我有一个应用程序正在进行很多 ajax 操作。所以我几乎所有的事件都是这样处理的:

jQuery( 'body' ).on( 'click', '#id', function ( event ) {

    // Do something

});

而不是:

jQuery( '#id' ).click( function() {

   // Do something

});

这适用于所有事件,除了这样的滚动事件不起作用:

jQuery( 'body' ).on( 'scroll', '#id', function ( event ) {

    // Do something

});

鼠标滚轮事件效果很好。有什么问题还是没有滚动事件?

问题是 scroll 事件不会在 DOM 中冒泡,因此使用 live()on()delegate() 的委派不会工作。

您必须自己将事件处理程序绑定到动态创建的元素。

Reference

不确定这是否有帮助

$(window).on('scroll', function(){
   $("#head").html($(this).scrollTop());
});

JSfiddle

为了能够触发 DOM 元素的滚动事件,您应该将其放入 css:

selector { overflow-y: scroll }