回答:
コールバック関数を指定できます:
$(selector).fadeOut('slow', function() {
// will be called when the element finishes fading out
// if selector matches multiple elements it will be called once for each
});
jQuery 1.6バージョンでは、.promise()
メソッドを使用できます。
$(selector).fadeOut('slow');
$(selector).promise().done(function(){
// will be called when all the animations on the queue finish
});
promise()
またはwhen()
を使用するとdone()
、サードパーティのメソッドや独自のメソッドからの非常に優れた動作を活用できます。meantioningのための1 .promise()
!
$(selector).fadeOut('slow').promise().done(function(){...});
終了する$.when()
まで待つのにも使えますpromise
:
var myEvent = function() {
$( selector ).fadeOut( 'fast' );
};
$.when( myEvent() ).done( function() {
console.log( 'Task finished.' );
} );
失敗する可能性のあるリクエストを実行している場合は、さらに一歩進んでください。
$.when( myEvent() )
.done( function( d ) {
console.log( d, 'Task done.' );
} )
.fail( function( err ) {
console.log( err, 'Task failed.' );
} )
// Runs always
.then( function( data, textStatus, jqXHR ) {
console.log( jqXHR.status, textStatus, 'Status 200/"OK"?' );
} );
$.when()
機能しません。なぜならmyEvent()
、はプロミスを返さず、$.when()
その仕事をするために1つ以上のプロミスを渡すことを期待しているためです。