禁用某些AJAX调用的ajaxSetup默认值

who*_*tsb 7 ajax jquery

我构建的企业内部网大量使用AJAX调用来加载表和其他资源.默认情况下,我有一个带有加载gif的模态对话框,让用户知道页面正在加载.我用jQuery的ajaxSetup设置了这个默认值.

有几个区域我使用带自动完成功能的搜索框.我注意到每次输入一个字符时都会出现加载对话框.有没有办法只为那个调用禁用ajaxSetup?

谢谢您的帮助!

Qui*_*son 11

您应该能够在每个ajax调用时传递一个新的选项对象,以在需要时覆盖默认设置.

不确定你的模态是在发送之前还是你有什么,但我想你会从下面得到图片.

$.ajax({ beforeSend: function() { /* do nothing */ }....
Run Code Online (Sandbox Code Playgroud)


Rya*_*nch 9

我猜你为全局Ajax事件设置了一个处理程序来创建对话框.可以针对特定请求禁用这些事件(来自jQuery文档):

全球活动

这些事件被广播到DOM中的所有元素,触发可能正在侦听的任何处理程序.您可以像这样监听这些事件:

$("#loading").bind("ajaxSend", function(){
   $(this).show();
 }).bind("ajaxComplete", function(){
   $(this).hide();
 });
Run Code Online (Sandbox Code Playgroud)

对于特定的Ajax请求,可以通过传入全局选项来禁用全局事件,如下所示:

$.ajax({
   url: "test.html",
   global: false,
   // ...
 });
Run Code Online (Sandbox Code Playgroud)