无法使用jQuery委托滚动事件

时间:2013-09-04 21:17:32

标签: javascript jquery

我正在尝试使用jQuery在特定类元素的滚动上触发事件,如下所示:

$('body').on('scroll', '.overflow', function() { do stuff; });

然而,do stuff永远不会发生。我做了一些实验,看起来好像无法使用.on委托滚动事件。 (有关测试用例,请参阅http://jsbin.com/aJeDiru/2。)

有没有办法让我委托代理?或者是否有一个非常好的理由™为什么永远不应该以这种方式设置委托?

2 个答案:

答案 0 :(得分:3)

根据W3scroll事件不会冒泡。

由于事件委托依赖于冒泡到您已将处理程序附加到的元素的事件,因此您将无法使用委派。

答案 1 :(得分:1)

使用“mousewheel”代替,
确保#contents在主html文件中。

    $("#contents").on('mousewheel',function(e) {
    if(e.originalEvent.wheelDelta /120 > 0) {
         //do something to the loaded elements
     } else {
        //do something to the loaded elements
     }
});