0

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

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

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

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

4

2 回答 2

3

根据W3,该scroll事件不会冒泡。

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

于 2013-09-04T21:29:21.423 回答
2

改用“鼠标滚轮”,
确保#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
     }
});
于 2017-01-31T12:56:28.620 回答