deferred

$.ajax("url")

  .done(function(){ alert("哈哈,成功了!"); })

  .fail(function(){ alert("出错啦!"); });
``` 

deferred对象的一大好处,就是它允许你自由添加多个回调函数。如果ajax操作成功后,除了原来的回调函数,我还想再运行一个回调函数,怎么办?

$.ajax("url")

.done(function(){ alert("哈哈,成功了!");} )

.fail(function(){ alert("出错啦!"); } )

.done(function(){ alert("第二个回调函数!");} );

回调函数可以添加任意多个,它们按照添加顺序执行。
deferred对象的另一大好处,就是它允许你为多个事件指定一个回调函数,这是传统写法做不到的。请看下面的代码,它用到了一个新的方法[$.when()](http://api.jquery.com/jQuery.when/):

$.when($.ajax("url"), $.ajax("url"))

.done(function(){ alert("哈哈,成功了!"); })

.fail(function(){ alert("出错啦!"); });

这段代码的意思是,先执行两个操作$.ajax("test1.html")和$.ajax("test2.html"),如果都成功了,就运行done()指定的回调函数;如果有一个失败或都失败了,就执行fail()指定的回调函数。

你可能感兴趣的:(deferred)