2011-04-06 10 views
9

¿Cómo puedo darse cuenta de que cuando tengo una funciónjQuery espera para el evento para completar

$('.anyclass').slideToggle(1000); 

que el programa exetutes la prueba de funcionamiento() después de la slideToggle completado?

Si escribo de esta manera:

$('.anyclass').slideToggle(1000); 
test(); 

... test() se ejecuta antes slideToggle completó.

¿Cómo me puedo dar cuenta? No sé jQuery muy bien ...

¡Gracias por tu ayuda! Saludos, Florian

EDIT: Resultados u puede ver aquí: www.virtual-swiss-hornets.ch

Respuesta

17

Usted puede agregar una función callback a su función de jQuery.

$('.anyclass').slideToggle(1000,function() { test(); }); 

Esa función SÓLO se activará una vez que se complete la diapositiva.

+0

¡Respuesta perfecta! +1 – Sonhja

3

creo slideToggle debe aceptar el segundo argumento callback, así:

$('.anyclass').slideToggle(1000, function() {/* do anything after animation is complete */}); 

realidad para su caso particular, es tan fácil como:

$('.anyclass').slideToggle(1000, test); 
1

Lo que necesita es usar la devolución de llamada función

http://api.jquery.com/slideToggle/

.slideToggle ([duración], [callback])

('.anyclass').slideToggle(1000, function() { test(); }); 
2

Si sólo necesita esta vez al fuego , Salida de la API de jQuery para whendone

$.when(('.anyclass').slideToggle(1000)).done(function() { test(); }); 
0

La mejor manera debería ser esto

$('#result').append($("<div class='message'>Result Sucess</div>")).slideToggle(5000,function(){$(this).remove()});

Cuestiones relacionadas