Javascript 将滚动事件附加到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 () { }

我在滚动事件中遇到了一些问题

我正在尝试将事件附加/绑定到特定的div, 我使用
$('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没有实现捕获阶段,您必须使用javascript
addEventListener()
方法:

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
);