Jestem pewien, że czytałem o tym kiedyś, ale nie mogę go nigdzie znaleźć.
Mam fadeOut()
zdarzenie, po którym usuwam element, ale jQuery usuwa element, zanim będzie miał szansę zakończyć zanikanie.
Jak sprawić, by jQuery czekało, aż element wyblaknie, a następnie go usunie?
107
W wersji jQuery 1.6 możesz skorzystać z
.promise()
metody.źródło
promise()
lubwhen()
idone()
można wykorzystać niektóre bardzo fajne zachowanie od 3 metod partyjnych, a nawet własne. +1 za intencje.promise()
!$(selector).fadeOut('slow').promise().done(function(){...});
Możesz równie dobrze
$.when()
poczekać, ażpromise
skończysz:Jeśli wykonujesz żądanie, które równie dobrze może się nie powieść, możesz nawet pójść o krok dalej:
źródło
$.when()
nie działa, ponieważmyEvent()
nie zwraca obietnicy i$.when()
oczekuje, że przekażesz jej jedną lub więcej obietnic, aby wykonała swoją pracę.jeśli jest to coś, co chcesz zmienić, wyciszając jedną i wygaszając drugą w tym samym miejscu, możesz umieścić atrybut {position: Absolut} na elementach div, aby obie animacje były odtwarzane jedna na drugiej i nie masz poczekać na zakończenie jednej animacji przed uruchomieniem następnej.
źródło