使用jQuery检测ajax加载元素中的滚动

时间:2015-03-14 16:23:36

标签: jquery scroll

如果有一个加载了ajax的按钮,并且您需要聆听它的点击次数,请使用.on(),如下所示:

$(document).on('click', '.button', function(e) {
    // Do somethinh...
});

我知道,但我不能在滚动条上使用同样的逻辑。我得到了一个名为#overlayer的元素,它可以加载ajax,然后我试图在它上面滚动并触发一个函数,当它即将退出视口时,它会向侧边栏添加粘性类:

$(document).on('scroll', '#overlayer', function() {
    stickySidebar();
    console.log('scroll happened');
});

但它不起作用。

我可以这样工作:

$('#overlayer').on('scroll', function() {
    stickySidebar();
    console.log('scroll happened');
});

但它不会对加载ajax的内容起作用。

1 个答案:

答案 0 :(得分:3)

将事件绑定到ajax加载的元素将无法工作,除非您在将元素插入DOM后执行此操作,例如在回调函数中。假设您正在使用$.post,请执行以下操作:

$.post("filename", function(data){

    //insert element here

    //event handler
    $('#overlayer').on('scroll', function() {
        stickySidebar();
        console.log('scroll happened');
   });
})