本地AjaxStart / Stop?

时间:2011-09-13 21:03:30

标签: jquery ajax

我有一个全球性的ajax开始和停止。我想知道如果这可以被本地的一个覆盖,因为我的ajax方法之一需要在ajax启动和停止时做一些不同的事情

我试过

$.ajax({
  url: "test.html",
  context: document.body,
  success: function(){
    $(this).addClass("done");
  },
  ajaxStart: function()
{
  alert('hi');
}
});

2 个答案:

答案 0 :(得分:3)

您可以通过在jQuery.ajax调用中设置global:false来完成此操作。

  

global(布尔)
  默认值:true

     

是否触发全局Ajax事件   这个请求的处理程序。默认值为true。设为false为   防止像ajaxStart或ajaxStop这样的全局处理程序   触发。这可用于控制各种Ajax事件。

答案 1 :(得分:1)

您可以通过名称引用另一个函数(successHandler)甚至函数,因为所有全局函数实际上都成为窗口对象的方法。对于最后一个解决方案,您需要做的就是向包含正确函数名称的公共和本地页面添加一个字符串变量。

function successhandler()
{
    $(this).addClass("done");
}

function ajaxStart()
{ alert('hi');
}

$.ajax({
  url: "test.html",
  context: document.body,
  success: successHandler,
  ajaxStart: window['ajaxStart']
});