jQuery deferred.done() 方法
實例
當用戶點擊按鈕時,受理延遲對象,觸發一系列回調函數
<button>Go</button>
<p>準備...</p>
<script>
$(function () {
// 當Deferred對象被解決時,3個函數被調用
function fn1() {
$( "p" ).append( " 1 " );
}
function fn2() {
$( "p" ).append( " 2 " );
}
function fn3( n ) {
$( "p" ).append( n + " 3 " + n );
}
//創建一個deferred對象
var dfd = $.Deferred();
// 添加當dfd解決時被調用的處理程式
dfd
// .done() 可以獲取函數或函數數組的數量
.done( [ fn1, fn2 ], fn3, [ fn2, fn1 ] )
// 我們也可以連接其他的方法
.done(function( n ) {
$( "p" ).append( n + " 已完成。" );
});
// 當按鈕被點擊時修改狀態為已完成
$( "button" ).on( "click", function() {
dfd.resolve( "和" );
});
})
</script>
定義和用法
deferred.done() 函數當Deferred(延遲)對象被受理時,調用添加的處理程式。
提示:該方法接受一個或者多個參數。deferred.done() 返回的是一個 Deferred 對象,
可以連接其他的延遲對象方法,包括額外的 .done() 方法。當Deferred 對象得到解決時,回調函數按它們被添加時的順序執行,並且可以作為參數傳遞給如下的方法使用:resolve,resolveWith。
語法
deferred.done( doneCallbacks [, doneCallbacks ] )
參數 | 描述 |
---|---|
doneCallbacks | Function類型 一個函數或者函數數組,當Deferred(延遲)對象得到解決時被調用 |
doneCallbacks | 可選。Function類型 一個函數或者函數數組,當Deferred(延遲)對象得到解決時被調用 |