Chcę dodać klasę, odczekaj 2 sekundy i dodaj kolejną.
.addClass("load").wait(2sec).addClass("done");
Czy jest jakiś sposób?
setTimeout wykona kod po pewnym czasie (mierzonym w milisekundach). Jednak ważna uwaga: ze względu na naturę javascript reszta kodu nadal działa po skonfigurowaniu timera:
$('#someid').addClass("load");
setTimeout(function(){
$('#someid').addClass("done");
}, 2000);
// Any code here will execute immediately after the 'load' class is added to the element.
Tak by było
.delay()
.http://api.jquery.com/delay/
Jeśli jednak robisz rzeczy AJAX, naprawdę nie powinieneś po prostu automatycznie pisać „gotowe”, powinieneś naprawdę poczekać na odpowiedź i zobaczyć, czy faktycznie jest zrobiona.
źródło
.removeClass('load')
przeciwnym razie załadować i zakończyć dodawanie obu klas, co jest prawdopodobnie niepożądane. Jeśli rzeczywiście czekasz na zakończenie akcji asynchronicznej, najlepiej jest zrobić .addClass KIEDY zakończy się i zakończy się sukcesem, jeśli nie .addClass ('błąd') może być pomysłemdelay () nie wykona zadania. Problem z delay () jest częścią systemu animacji i dotyczy tylko kolejek animacji.
A co jeśli chcesz zaczekać przed wykonaniem czegoś poza animacją?
Użyj tego:
Co się dzieje ?: W tym scenariuszu czeka 600 milisekund przed wykonaniem kodu określonego w nawiasach klamrowych.
To bardzo mi pomogło, kiedy już to rozgryzłem i mam nadzieję, że pomoże to również Tobie!
WAŻNA UWAGA: „window.setTimeout” działa asynchronicznie. Miej to na uwadze podczas pisania kodu!
źródło
Zdaj sobie sprawę, że to stare pytanie, ale napisałem wtyczkę, aby rozwiązać ten problem, która może być przydatna.
https://github.com/madbook/jquery.wait
pozwala ci to zrobić:
źródło
Jest funkcja, ale jest dodatkowa: http://docs.jquery.com/Cookbook/wait
Ten mały fragment pozwala poczekać:
źródło
Możesz użyć
.delay()
funkcji.Oto, czego szukasz:
źródło
Wtyczka xml4jQuery udostępnia metodę uśpienia (ms, callback). Pozostały łańcuch zostałby wykonany po okresie snu.
źródło
Korzystanie z funkcji setTimeout, na przykład Odwiedź tutaj
źródło