如何让jQuery等待效果完成?

我敢肯定,前几天我读到了这件事,但似乎找不到任何地方。
我有一个fadeOut()事件,之后我删除了元素,但是jQuery在有机会完成淡出之前删除了该元素。
如何让jQuery等待元素淡出,然后将其删除?

泛舟湖上清波郎朗
浏览 606回答 3
3回答

偶然的你

您可以指定一个回调函数:$(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});

莫回无

您也可以使用$.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"?' );    } );
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery