2010-07-14 44 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);