2011-08-31 12 views
14

mam ten kod:Jak wywołać funkcję po fadeOut() na wiele elementów

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

i chciałbym, aby zadzwonić, że alarm tylko kiedy ALL.hotel_photo_select są fadeOuted (tak, ukryty) .

Jak mogę to zrobić? W moim kodzie alert jest wywoływany po zaniku pierwszego elementu ...

Odpowiedz

38

Możesz użyć do tego metody promise() (strona doc ma na to dobry przykład). Metoda

.promise() zwraca dynamicznie generowane obiecują, że jest rozwiązany, gdy wszystkie działania pewnego rodzaju związanego z kolekcji kolejce czy nie, zostały zakończone.

zastosowana do przykładu powinno być coś takiego:

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

Jak używasz .promise() tutaj? – Evgeny

+5

Oto wersja obietnicy(): $ ('. Hotel_photo_select'). FadeOut (500) .promise(). Done (funkcja() { alert ("Teraz wszystko" .hotel_photo_select są ukryte ""); }) ; – DDA

+0

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

Powiązane problemy