2011-08-31 11 views
14

tengo este código:Cómo llamar a una función después de un fadeOut() de muchos elementos

$('.hotel_photo_select').fadeOut(500, function() { 
    alert("Now all '.hotel_photo_select are hidden'"); 
}); 

y me gustaría llamar a esa alerta sólo cuando TODO.hotel_photo_select son fadeOuted (así, oculto) .

¿Cómo puedo hacerlo? Con mi código, la alerta se invoca después de que el primer elemento se desvanece ...

Respuesta

38

Puede usar el método promise() para esto (la página del documento tiene un buen ejemplo para esto). método

El .promise() devuelve un Promise generado dinámicamente que es resuelto de una vez todas las acciones de un cierto tipo unido a la colección, en cola o no, han terminado.

aplicado a su ejemplo debería ser algo como esto:

$.when($('.hotel_photo_select').fadeOut(500)) 
           .done(function() { 
    alert("Now all '.hotel_photo_select are hidden'"); 
}); 
+12

¿Cómo estás usando el .promise() aquí? – Evgeny

+5

Aquí está la promesa() versión: $ ('. Hotel_photo_select'). FadeOut (500) .promise(). Done (función() { alerta ("Ahora todos '.hotel_photo_select están ocultos'"); }) ; – DDA

+0

http://jsfiddle.net/mdf3C/ – DDA

Cuestiones relacionadas