2

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

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

$(document).ajaxComplete(function() {
    $('#loader').hide();
  $(window).on('scroll');
    });  

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

4

1 回答 1

6

“开”和“关”的名称可能会令人困惑;您不能使用它们来打开和关闭事件。

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

$(window).on('scroll', handlerFunction);
于 2012-10-05T21:47:25.017 回答