如果有一个加载了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的内容起作用。
答案 0 :(得分:3)
将事件绑定到ajax加载的元素将无法工作,除非您在将元素插入DOM后执行此操作,例如在回调函数中。假设您正在使用$.post
,请执行以下操作:
$.post("filename", function(data){
//insert element here
//event handler
$('#overlayer').on('scroll', function() {
stickySidebar();
console.log('scroll happened');
});
})