有没有办法删除使用ajaxSuccess创建的侦听器?

时间:2016-01-21 16:31:29

标签: jquery ajax javascript-events

有没有办法删除使用jQuery ajaxSuccess创建的侦听器?

我会对删除恰好分配给变量的侦听器或删除所有现有ajaxSuccess侦听器的方法感兴趣。

另一个角度可能是追溯到导致所讨论的“成功”的请求的方式,以及触发该请求的元素相关事件;理想情况下类似于“普通”事件侦听器中的event.target属性。似乎ajaxSuccess'event参数是不同种类的动物,没有target属性,也没有preventDefault方法。许多投掷者,一个捕手,但没有捕手识别。也许有ajaxSuccess以外的工具?希望除了从头开始烹饪jQuery .ajax之外......

2 个答案:

答案 0 :(得分:2)

  

我会对删除发生的侦听器的方法感兴趣   要分配给变量,或者删除所有现有的方法   ajaxSuccess侦听器

尝试使用.off()

$(document).off("ajaxSuccess")

答案 1 :(得分:1)

除了开发人员用来进行ajax调用之外,元素事件和ajax之间没有关系。

但是,您可以在设置每个请求时修改xhr对象,并访问ajaxSuccess回调中的特定属性。这些可以是帮助您管理应用的任意属性和值。例如,如果您想将实际元素事件传递给回调

您还可以检查包含网址的设置对象,并将其用于条件代码

简单示例:

$.ajax({
    url:'...',
    beforeSend:function(xhr){
       xhr.myData = 'some value';
    }
    ...
});

$( document ).ajaxSuccess(function( event, xhr, settings ) {
    console.log(xhr.myData );
})