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