jquery 手册
Ajax
属性(Attributes)
回调对象(Callbacks ..
核心(Core)
CSS
数据(Data)
延迟对象(Deferred o ..
尺寸(Dimensions)
效果(Effects)
事件(Events)
表单(Forms)
文档操作(Manipulati ..
杂项(Miscellaneou ..
位置(Offset)
插件编写(Plugin Aut ..
属性(Properties)
选择器(Selectors)
遍历(Traversing)
工具(Utilities)

Returns: DeferredDeferred .deferred.done( Function doneCallbacks, Function doneCallbacks )

描述:添加一个处理程序当延迟对象被解决后调用。
  • version added: 1.5
  • .deferred.done( Function doneCallbacks, Function doneCallbacks )
  • doneCallbacks 一个函数或函数数组,当延迟对象解决后调用。
    doneCallbacks 可选附加函数或函数数组,当延迟对象解决后调用。

deferred.done()方法接受一个或多个参数,参数可以是一个单一的函数或函数数组。 当递延解决后,doneCallbacks被调用,回调按它们添加时的顺序调用。当deferred.done()返回延迟对象, 延迟对象的其它方法也可以链接到这里,包括附加的.done() 方法。 当延迟对象完成后,doneCallbacks被执行,使用提供给resolveresolveWith方法的参数,并按参数添加时的顺序。更多信息,请看文档 Deferred object。.

Examples:

例子:

jQuery.get方法返回一个jqXHR对象时(延迟的一个派生), 我们可以使用.done()方法附加一个回调。
$.get("test.php").done(function() { 
  alert("$.get succeeded"); 
});

例子:

当用户点击按钮时解决一个延迟对象,触发一些回调函数:
<!DOCTYPE html>
<html>
<head>
  <script src="../jquery.min.js"></script>
  <style></style>
</head>
<body>
  
 <button>Go</button>
 <p>Ready...</p>

  <script>// 3 functions to call when the Deferred object is resolved
function fn1() {
  $("p").append(" 1 ");
}
function fn2() {
  $("p").append(" 2 ");
}
function fn3(n) {
  $("p").append(n + " 3 " + n);
}

// create a deferred object
var dfd = $.Deferred();

// add handlers to be called when dfd is resolved
dfd
// .done() can take any number of functions or arrays of functions
.done( [fn1, fn2], fn3, [fn2, fn1] )
// we can chain done methods, too
.done(function(n) {
  $("p").append(n + " we're done.");
});

// resolve the Deferred object when the button is clicked
$("button").bind("click", function() {
  dfd.resolve("and");
});</script>
</body>
</html>

Demo: