2011-01-05 13 views
7

Me gustaría tener un reinicio de jquery fadeOut() mientras se está desvaneciendo.reinicie jquery.fadeOut() mientras se está desvaneciendo

que tienen la siguiente declaración

$('#status').html('<div style="padding:5px; margin:0 0 0 200px;"><img src="/images/done.png" /> ' + message + '</div>').show().fadeOut(2000); 

Cuando un usuario realiza una acción, esta declaración se ejecute. durante los 2 segundos que se está ejecutando, el usuario puede realizar otra acción que llama a esta declaración.

Por el momento, el fadeOut debe completarse antes de que la animación fadeOut se reproduzca nuevamente.

¿Hay alguna manera de hacer que fadeOut simplemente reinicie desde el principio otra vez?

Respuesta

5

Utilice .stop() antes de llamar al .fadeOut().

Opcionalmente, use .stop(true, true) si desea que comience desde los valores de destino.

+0

gracias: D tuviera que hacer una ligera modificación. Tuve que llamar a $ ('# status'). Stop (verdadero, verdadero); ANTES de ejecutar la declaración de estado –

1

Puede llamar al stop antes de llamar a fadeOut. Eso reiniciará la animación fadeOut. De lo contrario, el segundo fadeOut se pondrá en cola después del primero.

1

Uso

jQuery.stop().fadeOut() 

para evitar la cola de Animación fadeOut.

.stop() can be used to prevent queueing any jQuery Animation 

http://api.jquery.com/stop/

+0

thx chetan funciona para mí :) –

0

Es extraño, pero en mi caso era mejor manera

//onclick 
    .stop(true, true).fadeIn().stop(true, true); //reset: stop old fadeOut and make visible again 
    .fadeOut(); //again 
Cuestiones relacionadas