我有一个页面,当用户向下滚动到页面的特定部分时,我会触发一个 ajax 加载事件。我这里有以下 ajax 事件处理程序:
$(document).ajaxStart(function() {
$('#loader').show();
$(window).off('scroll');
});
$(document).ajaxComplete(function() {
$('#loader').hide();
$(window).on('scroll');
});
为了防止 ajax 事件多次触发,我在 ajax 调用开始时关闭了滚动事件处理程序(我还编写了一个延迟函数,它也会在触发前等待几毫秒)。我的意图是在 ajax 完成后重新绑定(bind)滚动条。我知道这些事件正在发生,因为我的#loader div 正在按设计加载和卸载。不幸的是,卷轴从未重新绑定(bind),它一直处于关闭状态,我不明白为什么。因此,我加载了一个包含新内容的 ajax 页面,然后它停止工作。
最佳答案
名称“开”和“关”可能会混淆;您不能使用它们来打开和关闭事件。
off
方法从元素中完全删除事件处理程序。再次绑定(bind)事件时,必须指定事件处理器:
$(window).on('scroll', handlerFunction);
关于javascript - JQuery .on() 和 .off() 与我使用它们的方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12754407/