我正在尝试使用jQuery在特定类元素的滚动上触发事件,如下所示:
$('body').on('scroll', '.overflow', function() { do stuff; });
然而,do stuff
永远不会发生。我做了一些实验,看起来好像无法使用.on
委托滚动事件。 (有关测试用例,请参阅http://jsbin.com/aJeDiru/2。)
有没有办法让我委托代理?或者是否有一个非常好的理由™为什么永远不应该以这种方式设置委托?
答案 0 :(得分:3)
根据W3,scroll
事件不会冒泡。
由于事件委托依赖于冒泡到您已将处理程序附加到的元素的事件,因此您将无法使用委派。
答案 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
}
});