jQuery延迟方法和ajax beforeSend()

通过在$ .ajax中使用延迟对象

  • 成功回调可以用deferred-method done()代替
  • 错误回调acn被deferred-method fail()
  • 并且完整回调可以由always()替换

通过使用

 var jqxhr = $.ajax({ url: Config.baseUrl+"/ajax/favourites/set-favourite.ajax", dataType: "json", data: attrs, type: "POST", beforeSend: function(){ console.log("before send"); } }); 

如何使用延迟对象实现beforeSend-callback

为什么我不在$.ajax函数中使用beforeSend-callback? 因为请求在模型实例( http://canjs.com/docs/can.Model.model.html#section_Non_standardServices )内,所以模型对象执行请求和所有其他的后缀,比如操纵DOM将在延迟对象。 我想在发送ajax请求之前操纵DOM。

我怎么能这样做?

您可以将全局jQuery事件ajaxStart到触发AJAX请求的任何元素。 这应该基本上复制beforeSend的function。

 $(".ajax").ajaxStart(function() { $(".document").append("AJAX begun"); }); 

小提琴 。