2010-07-14 14 views
2

Dans le code suivant la dernière ligne ne fonctionne pas sur mon chemin:jQuery: en utilisant retard() et précédez()

$('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="" />'); 

Comment puis-je le faire fonctionner, que le précédez() - fonction ajoute la nouvelle image APRES 3 sec (parce qu'après 2.5 sec le récipient, où l'IMG est caché)?

Répondre

1

.delay() fonctionne uniquement avec jQuery fx methods. .prepend() n'en fait pas partie.

Vous pouvez contourner comme

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

En fait, vous devez créer votre propre .queue() une solution « propre ».

Une autre façon d'accomplir cette tâche consiste à utiliser javascripts natif setTimeout().

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

thx, cela fonctionne! – Simon

0

Vous pouvez essayer d'utiliser setTimeout:

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