滚动事件上的jQuery没有触发

时间:2015-03-04 16:10:56

标签: javascript jquery events scroll

我有一个带有很多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

});

使用鼠标滚轮事件,效果很好。有什么不对或没有滚动事件吗?

3 个答案:

答案 0 :(得分:3)

问题是scroll事件不会冒充DOM,因此live()on()delegate()的授权不会起作用。

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

Reference

答案 1 :(得分:2)

不确定这是否有帮助

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

JSfiddle

答案 2 :(得分:0)

为了能够触发DOM元素的滚动事件,你应该把它放在你的css:

selector { overflow-y: scroll }