滚动事件监听器未触发

Scroll event listener not firing

本文关键字:监听器 事件 滚动      更新时间:2023-09-26

我无法让事件侦听器在滚动时触发。它可以在点击时工作,但不能滚动。

我希望它的工作,即使它正在监听的div是创建之后的侦听器本身,因为ajax的用法。所以我用.on代替.scroll

$('.container').on('scroll', '.appended', function(){
    console.log('scrolling!');
});

我在这里创建了一个JSFiddle

您需要将侦听器附加到追加元素。像这样:

var nAppend = $('<div class="appended">this is appended<br>this is appended<br>this is appended<br>this is appended<br>this is appended<br>this is appended<br>this is appended<br>this is appended<br>this is appended<br>this is appended<br>this is appended<br></div>').scroll(function(){
    console.log('scrolling!');
});
setTimeout(function(){$('.container').append(nAppend);},1000);

我更新了你的文件。

滚动事件不会冒泡,因此委托方法不起作用。

使用mousewheel事件监听器:

$('.container').on('mousewheel', '.appended' ,function(e){
    if(e.originalEvent.wheelDelta > 0) {
        console.log('scrolling up !');
    }
    else{
        console.log('scrolling down !');
    }
});