[英]How to pause execution of javascript till jquery fade finishes
我想做這樣的事情
這是一個代碼:
$pH('#coveringDiv').fadeIn(300);
//want to start doing something now, but only after above fadeIn finishes
adContainer = $pH(currAdBubble).find('.mcc');
$pH(adContainer).empty().html("some html");
$pH('.phAdScroller').attr('kw',keyword);
setTimeout("$pH('#coveringDiv').fadeOut(500);",300);
但是發生的是, fadeIn
和此后編寫的代碼一起開始。 我希望僅在fadeIn
完成后才開始fadeIn
下面的代碼。 我嘗試了一個空的setTimeout
,但這也沒有幫助。 將代碼放在函數中並在setTimeout()
調用將太奇怪了,因為需要將許多參數傳遞給該函數。 那么如何實現呢?
fadeIn
一個回調函數,該函數將在fadeIn
完成后執行:
$pH('#coveringDiv').fadeIn(300, function () {
//want to start doing something now, but only after above fadeIn finishes
adContainer = $pH(currAdBubble).find('.mcc');
$pH(adContainer).empty().html("some html");
$pH('.phAdScroller').attr('kw',keyword);
setTimeout("$pH('#coveringDiv').fadeOut(500);",300);
});
jQuery中的大多數定時函數都支持回調,當定時操作完成時會調用該回調。 所以...
$pH('#coveringDiv').fadeIn(, 300, function() {
... code to execute after the fade completes ...
});
嘗試這個:
$pH('#coveringDiv').fadeIn(300, function() {
adContainer = $pH(currAdBubble).find('.mcc');
$pH(adContainer).empty().html("some html");
$pH('.phAdScroller').attr('kw',keyword);
setTimeout("$pH('#coveringDiv').fadeOut(500);",300);
});
fadeIn
的第二個參數是動畫完成時調用的回調。
$pH('#coveringDiv').fadeIn(300, anotherFuncName);
要么
$pH('#coveringDiv').fadeIn(300, function() {
// code here
});
暫停500秒。 或循環倒數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.