我確信我前幾天看過這篇文章,但似乎無法在任何地方找到它。
我有一個事件後,我刪除了元素,但jQuery刪除元素之前,它有機會完成淡出。
如何讓jQuery等到元素淡出,然後刪除它?如何讓jQuery等待效果完成?
94
A
回答
146
您可以指定一個回調函數:
$(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
});
6
如果您希望切換某個東西,在同一個地方淡出另一個淡出另一個東西,您可以在div上放置{position:absolute}屬性,這樣兩個動畫都會相互重疊,而您在開始下一個動畫之前,不必等待一個動畫結束。
157
使用jQuery 1.6版本,您可以使用.promise()
方法。
$(selector).fadeOut('slow');
$(selector).promise().done(function(){
// will be called when all the animations on the queue finish
});
9
您可以如用$.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"?');
});
相關問題
- 1. 等待Flex效果完成
- 2. jQuery fadeOut在開始新效果之前等待效果完成
- 3. jquery,等待完成
- 4. 如何讓WebAii測試等待jQuery動畫完成?
- 5. 如何讓我的腳本等待jQuery動畫完成?
- 6. jQuery完成後不等待它完成
- 7. JQUERY - 等待window.location.href來完成
- 8. jquery等待$。每個完成
- 9. 如何等待SwingWorker完成?
- 10. 如何等待完成dataTaskWithRequest?
- 11. 如何等待sendBroadcast完成
- 12. NSURLConnection - 如何等待完成
- 13. 如何等待onActivityResult完成?
- 14. 讓jQuery等待
- 15. 等待完成
- 16. 等待完成
- 17. 如何等到jQuery特效完成?
- 18. 讓Android MainActivity等待線程完成
- 19. 無效擴展等待方法完成
- 20. 等待$ .post完成
- 21. 等待NSURLSessionTask完成
- 22. 等待webrequest完成
- 23. delayed_job等待完成
- 24. QNetworkReply等待完成
- 25. 等待AsyncTask完成
- 26. 等待webworker完成
- 27. 如何讓主線程等待所有子線程完成?
- 28. 如何讓php等待curl在繼續之前完成?
- 29. 如何讓計時器任務等待runOnUiThread完成
- 30. 如何讓UI線程等待後臺線程完成?
賓果。我以爲是這樣,但我需要做的是將我的整個功能放在那裏,而不僅僅是刪除部分。附:如果任何人對我閱讀過的書感興趣,現在又發現了學習JQuery - 更好的交互和設計。再次感謝 – uriDium 2009-06-30 20:23:09
如果有人有舊的jQuery,那麼這個「動畫完成回調」錯誤是一個令人討厭的錯誤:http://bugs.jquery.com/ticket/5684 – JustAMartin 2014-05-23 16:03:33
這裏得到你的upvote數字100 – kaiser 2015-09-19 23:28:35