Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wielokrotne kliknięcie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Kozo_WSP
Co zrobić, żeby funkcja wykonała się do końca, nawet jeśli nastąpi zdarzenie click podczas jej wykonywania?

Inaczej: Funkcja dokonuje jakichś zmian po kliknięciu. JEśli kliknę kilka razy szybko, to tamte funkcje nie zdążają się wykonać w całości, są przerywane w połowie wykonania, a tego nie chcę. Chcę, żeby jak kliknę dziesięć razy to żeby funkcje wykonały się dziesięć razy od początku do końca.

Niestety kolejki jquery nie są rozwiązaniem bo działają tylko dla animacji. Mogę wymusić żeby za pomocą funkcji queue( funkcja ) animacje wykonywały się w całości, jednak to już nie działa dla funkcji, które dokonują operacji
Arcioch
Hmm a może jQuery stop wink.gif
Sorki źle przeczytałem wink.gif
Daj sobie jakaś zmienną na 0 wink.gif po kliknięci zmień ją na 1. Gdy animacja albo funkcja skoczy się wykonywać zmieniaj ją na 0 smile.gif W clicku daj warunek że ma środek zadziałać jeżeli zmienna jest równa 0 wink.gif
stud3nt
Ja to robię w ten sposób.

[JAVASCRIPT] pobierz, plaintext
  1. var _AnimateStatus = 'STOP';
  2.  
  3. function nasza_animacja() {
  4. if (_AnimateStatus == 'STOP') {
  5. _AnimateStatus = 'PLAY';
  6. $('#NASZ_OBIEKT').animate({marginLeft:400, marginRight:500}, 400, function() {
  7. _AnimateStatus = 'STOP';
  8. });
  9. }
  10. }
[JAVASCRIPT] pobierz, plaintext


Krótkie wyjaśnienie:
1) Na początku definiuję zmienną globalną przechowującą status animacji (STOP - brak odtwarzania, PLAY - animacja się odtwarza).
2) Jeśli zmienna ma wartość STOP (animacja nie jest wykonywana), to zmienna przyjmuje wartość PLAY i odtwarza się animacja.
3) Animacja się wykonuje, po czym zmienna kontrolna z powrotem przyjmuje wartość STOP.

Jeśli ktoś zacznie klikaninę przed dokończeniem animacji, to nic się nie stanie, _AnimateStatus będzie 'PLAY' i polecenie zostanie zignorowane.
Kozo_WSP
Tu nie chodzi o animacje, już pisałem. Jeśli by o to chodziło, to nie mam z tym najmniejszego problemu.
Arcioch
Pokaż kod a my go spróbujemy dostosować wink.gif
Wydaje mi się że wystarczy utworzyć zmienna i sprawdzać ją w clicku ale bez kodu to ciężko pomóc wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.