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

Is there a way to remove listeners created with ajaxSuccess?

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

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

另一个角度可能是一种追溯导致 "success" 问题的请求的方式,以及触发该请求的与元素相关的事件;理想情况下类似于 "normal" 事件监听器中的 event.target 属性。似乎ajaxSuccess' event 参数是不同种类的动物,没有target 属性 也没有preventDefault 方法。许多投手,一名接球手,但没​​有接球手身份证明。也许还有 ajaxSuccess 以外的工具?希望除了从头开始烹饪 jQuery .ajax...

I would be interested in either ways to remove listeners that happen to be assigned to the variable, or ways to remove all existing ajaxSuccess listeners

尝试使用 .off()

$(document).off("ajaxSuccess")

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

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

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

简单示例:

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

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