2009-06-04 8 views
0

I haben zwei Elemente, die zur gleichen Zeit nicht aktiv sein sollte, so dass, wenn eine getoggelt I verblassen die anderen aus, aber ich würde das offene Element in der Lage darauf zu verblassen und dann bringen die andere in. Gibt es eine Möglichkeit, dies zu tun, das ist kein Hack?jQuery Verzögerung zwischen Animationen

<script ="text/javascript"> 

$(function() { 
    $('#jlogin').click(function() { 
     $('#login').toggle('fast'); 
     $('#reg').fadeOut('fast'); 
    }); 

    $('#jreg').click(function() { 
     $('#reg').toggle('fast'); 
     $('#login').fadeOut('fast'); 
    }); 
}); 

</script> 

Das ist mein aktuelles Skript.

Antwort

2

Schauen Sie den Callback-Mechanismus für fadeOut bei Verwendung so können Sie die Animationen Kette. Der Rückruf für die Animationsmethoden wird aufgerufen, nachdem die vorherige Animation abgeschlossen ist.

<script type="text/javascript"> 
    $(function() { 
     $('#jlogin').click(function() { 
      $('#reg').fadeOut('fast', function() { 
       $('#login').toggle('fast'); 
      }); 
     }); 
     $('#jreg').click(function() { 
      $('#login').fadeOut('fast', function() { 
       $('#reg').toggle('fast'); 
      }); 
     }); 
    }); 
</script> 
+0

irgendwelche schnellen Beispiele? –

+0

Ich habe mein Beispiel aktualisiert. Ich glaube, ich habe ursprünglich missverstanden, was du versucht hast zu tun, aber dieses Beispiel sollte fadeOut das Element, das entfernt werden soll, und dann das Element umschalten, das (vermutlich) angezeigt wird. Solltest du show anstelle von toggle verwenden? – tvanfosson

+0

Ich habe ursprünglich Toggle verwendet, weil ich die Animation mag, wird es vorteilhafter sein? Ich muss in der Lage sein, die Elemente bei Bedarf wieder zu öffnen. –