Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wielokrotne kliknięcie
Kozo_WSP
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 9.02.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
stud3nt
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 7
Dołączył: 6.01.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował stud3nt 7.10.2012, 12:36:24
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 16:30