Javascript 将滚动事件附加到div,主体打开()绑定失败
我在滚动事件中遇到了一些问题 我正在尝试将事件附加/绑定到特定的div, 我使用Javascript 将滚动事件附加到div,主体打开()绑定失败,javascript,jquery,events,binding,scroll,Javascript,Jquery,Events,Binding,Scroll,我在滚动事件中遇到了一些问题 我正在尝试将事件附加/绑定到特定的div, 我使用$('body').on()来做这件事,因为 排序时会重新加载内容,因此将丢失其绑定 这不起作用,未触发事件: $('body').on('scroll', 'div.dxgvHSDC + div', function () { } 另一方面,这是可行的: $('body').on('mousewheel DOMMouseScroll', 'div.dxgvHSDC + div', function () { }
$('body').on()
来做这件事,因为
排序时会重新加载内容,因此将丢失其绑定
这不起作用,未触发事件:
$('body').on('scroll', 'div.dxgvHSDC + div', function () {
}
另一方面,这是可行的:
$('body').on('mousewheel DOMMouseScroll', 'div.dxgvHSDC + div', function () {
}
这也是:
$('div.dxgvHSDC + div').on('scroll', function () {
}
有什么问题吗?您不能将委派添加到
滚动事件中。此事件不会使DOM冒泡,因此不能将其委托给任何元素。您可以找到更多信息:
滚动事件不会出现气泡。
虽然事件不会冒泡,但当用户滚动整个页面时,浏览器会在文档和窗口上触发滚动事件
您需要在创建滚动元素的事件内创建事件处理程序
活生生的例子:
$('#链接')。单击(函数(){
//动态创建的元素
$('body')。追加('');
//动态添加的事件
$('.demo')。在('scroll',函数(){
警报(“滚动”);
});
});
在现代浏览器(IE>8)上,您可以捕获事件并将其滚动到动态元素的文档级别。由于jQuery没有实现捕获阶段,您必须使用javascriptaddEventListener()
方法:
document.addEventListener(
'scroll',
function(event){
var $elm = $(event.target);
if( $elm.is('div.dxgvHSDC + div')){ // or any other filtering condition
// do some stuff
console.log('scrolling');
}
},
true // Capture event
);
谢谢昨天找到了同一页。相反,在回调结束时直接在元素上读取侦听器。这是我的首选答案,应该是可接受的答案。
document.addEventListener(
'scroll',
function(event){
var $elm = $(event.target);
if( $elm.is('div.dxgvHSDC + div')){ // or any other filtering condition
// do some stuff
console.log('scrolling');
}
},
true // Capture event
);