gpt4 book ai didi

javascript - 如何处理所有元素而不是一个元素的 ajaxSetup 绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 13:52:29 24 4
gpt4 key购买 nike

我的布局页面上有 AJAX 事件绑定(bind):

$(document).not("#approvalTitleBlock").bind("ajaxSend", function() {
$("#loading").show();
}).bind("ajaxStop", function() {
$("#loading").hide();
});

这不会在 ajaxSend 上触发。但是,如果我用这个替换它,那么它可以正常工作:

$(document).bind("ajaxSend", function() {
$("#loading").show();
}).bind("ajaxStop", function() {
$("#loading").hide();
});

为什么我会有这种行为?

最佳答案

这是因为它是一个全局 AJAX 事件处理程序。它不会在您选择的元素上引发,事实上它不会在任何 DOM 元素上引发。它仅在 document 本身上引发。查看documentation :

As of jQuery 1.9, all the handlers for the jQuery global Ajax events, including those added with the ajaxSend() method, must be attached to document.

更新

根据您的以下评论:

I want to change behavior for events on ajaxSend and ajaxStop for AJAX call on #approvalTitleBlock (it shouldn't show #loading)

在这种情况下,在发出请求时将 global: false 属性添加到 $.ajax() 设置中。这将防止为请求调用任何全局处理程序。

关于javascript - 如何处理所有元素而不是一个元素的 ajaxSetup 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57970077/

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