JQuery .on()和.off()不能像我使用它们一样工作

Joe*_*nks 2 javascript ajax jquery events event-handling

我有一个页面,当用户向下滚动到页面的某个部分时,我会触发ajax加载事件.我在这里有以下ajax事件处理程序:

$(document).ajaxStart(function() {
$('#loader').show();
$(window).off('scroll');
    }); 

$(document).ajaxComplete(function() {
    $('#loader').hide();
  $(window).on('scroll');
    });  
Run Code Online (Sandbox Code Playgroud)

为了防止ajax事件多次触发,我在ajax调用开始时关闭了scroll事件处理程序(我还编写了一个延迟函数,它将在触发之前等待几毫秒).我的意图是在ajax完成后重新绑定滚动.我知道这些事件正在发生,因为我的#loader div按设计加载和卸载.不幸的是,滚动永远不会重新绑定,它仍然关闭,我无法理解为什么.因此,我加载一个新内容的ajax页面,然后它停止工作.

Guf*_*ffa 6

名称"开"和"关"可能令人困惑; 你无法使用它们来打开和关闭事件.

off方法从元素中完全删除事件处理程序.再次绑定事件时,必须指定事件处理程序:

$(window).on('scroll', handlerFunction);
Run Code Online (Sandbox Code Playgroud)