滚动事件侦听器未触发

时间:2014-03-15 19:33:05

标签: javascript jquery scroll mouseevent

滚动时我无法触发事件监听器。它在点击但不滚动时有效。

我希望它能够工作,即使它正在侦听的div是由于ajax用法而在监听器本身之后创建的。因此,我使用.on代替.scroll

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

我创建了一个JSFiddle here

3 个答案:

答案 0 :(得分:0)

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

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

我更新了您的JSfiddle

答案 1 :(得分:0)

滚动活动don't bubble,因此委派的方法无法运作。

答案 2 :(得分:0)

改为使用mousewheel事件监听器:

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