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(延迟)对象得到解决时被调用 |