gpt4 book ai didi

jquery - deferred.done() 是否在 ajaxComplete() 之前触发?

转载 作者:行者123 更新时间:2023-12-01 03:38:09 35 4
gpt4 key购买 nike

我有一个与 .done 方法链接的 ajax 请求:

$.ajax({
type: "POST",
url: $formAction,
data: $form.serialize(),
})
.done(function () {
refreshComplaintCategoryResults($categoryId);
});

还有一个 .ajaxComplete() 用于重新初始化一些事件:

$(document).ajaxComplete(function (e, jqXhr, ajaxOptions) {
reinitAll();
});

哪一个应该先开火? .done() 方法还是 ajaxComplete() 方法?

我希望能够在 reinitAll() 方法之后执行 refreshComplaintCategoryResults() 。我不想再次调用 reinitAll() 方法,因为它会被调用两次(我无法从 ajaxComplete() 中删除它)方法,但我不能将ajaxComplete() 方法中的 refreshComplaintCategoryResults()

更新:

我已将其添加到 ajaxComplete() 方法中以获得我想要实现的目标,并删除了 .done() 方法。然而,检查 url 以完成操作似乎有点困惑:

$(document).ajaxComplete(function (e, jqXhr, ajaxOptions) {
reinitAll();

if (ajaxOptions.url === "ComplaintWorkflow/GetComplaintCategoryResults")
{
$("tr[data-action-url]")[0].click();
}
});

没有更好的办法吗?

最佳答案

Does deferred.done() fire before ajaxComplete()?

是的,确实如此。这是 fiddle :

$(document).ajaxComplete(function (e, jqXhr, ajaxOptions) {
console.log("ajaxComplete");
});
$.ajax({
type: "POST",
url: "/echo/json/",
data: "{'a':1}",
})
.done(function () {
console.log("ajax.done");
});

控制台输出:

ajax.done
ajaxComplete

关于jquery - deferred.done() 是否在 ajaxComplete() 之前触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27904218/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com