2010-07-14 70 views
2

在下面的代碼的最後一行並不在我的工作方式:jQuery的:使用延遲()和前置()

$('button.goal').click(function() { 
$('div.scorer_away').animate({ 
    width: 'hide', 
    opacy: 'hide' 
    }, 'slow') 
.delay(2500) 
.animate({ 
    width: 'show', 
    opacy: 'show' 
    }, 'slow'); 
$('span.scorer_away').delay(3000).prepend('<img src="chofbauer.png" alt="" />'); 

我怎樣才能使它發揮作用,使前置() - 函數添加在3秒後新圖像(因爲在隱藏img前置的容器2,5秒後)?

回答

1

.delay()只適用於jQuery fx methods.prepend()不是其中之一。

可以解決辦法像

$('span.scorer_away').delay(3000).show(1, function(){ 
    $(this).prepend('<img src="chofbauer.png" alt="" />'); 
}); 

其實你就必須創建自己的.queue()一個「乾淨」的解決方案。

完成該任務的另一種方法是使用JavaScript本地setTimeout()

setTimeout(function(){ 
    $('span.scorer_away').prepend('<img src="chofbauer.png" alt="" />'); 
}, 3000); 
+0

THX,這個作品! – Simon 2010-07-14 06:52:28

0

你可以嘗試使用setTimeout

function myfunc() { $('span.scorer_away').prepend('<img...>') }; 
setTimeout(myfunc, 3000);