jQuery延迟方法和ajax beforeSend()

时间:2013-12-08 13:19:49

标签: javascript ajax jquery

使用$ .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。

我怎么能这样做?

1 个答案:

答案 0 :(得分:-1)

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

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

Fiddle