![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Dzień dobry (IMG:style_emoticons/default/smile.gif)
Mam taki oto skrypt timera na stronie:
A wywołuję go tak: I jeśli jeden Interwał jest uruchomiony to wszystko pięknie działa i interwał zostaje wyłączony, natomiast jeśli jest kilka uruchomionych to mimo wykonania zadania interwał nadal działa. I tutaj moje pytanie, jak wyłączyć setInterval jeśli np. są 4 uruchomione? Proszę o pomoc. Ten post edytował miccom 5.12.2015, 10:51:48 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Wykorzystuj zmienną counter jako tablicę i dodawaj tam wszystkie timery. Wówczas będziesz miał dostęp do wszystkich i spokojnie se usuniesz. Na razie po prostu dodajesz i nadpisujesz własności statyczne pustej tablicy
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
OK, a możesz jaśniej? Bo nie rozumiem co napisałeś?
Tworzę tablicę:
A następnie do countera dopisuję idTimera
Czy to nie jednoznaczne z dodaniem do tablicy counter rekordu idTimera? czy tak to ma wyglądać?
Ten post edytował miccom 5.12.2015, 11:56:36 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Nie. Tablica dalej jest pusta (możesz to sprawdzić sprawdzając counter.length).
Z racji tego, że w JS tablice są po prostu specyficznym typem obiektów, zapis typu tablica.wlasnosc działa tak samo jak obiekt.wlasnosc. Jak chcesz coś dodać do tablicy, najłatwiej użyć counter.push |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
OK.
Nie rozumiem:) ale zrobiłem tak:
i przy
widzę odpowiednio ilości timerów uruchomionych. Jak teraz jeden z nich zatrzymać? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Hmm… może taki przykład coś Ci pomoże: http://jsfiddle.net/Comandeer/skquys49/
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
Kod var counter =[];
counter.push(setInterval(function(){console.log('a')}, 1000)); counter.push(setInterval(function(){console.log('b')}, 1000)); counter.push(setInterval(function(){console.log('c')}, 1000)); clearInterval(counter[0]); |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
ok sazian, a jeśli nie są po kolei timery?
Na końcu usuwamy counter[0], a gdybym chciał te countery ponumerować? i dać np. counter[1], counter[13], counter[5] itd? Jeden timer ma np. 1 minutę, drugi 7 minut a trzeci 2 minuty... |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
To poczytaj kod z mojego przykładu (IMG:style_emoticons/default/wink.gif)
push zwraca indeks tablicy, więc wystarczy ten fakt wykorzystać (zadeklarować zmienną w funkcji loadTimer) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
coś takiego?
Jak dam potem
to nie zatrzymuje mi timera. Nic nie rozumiem z Twojego przykładu. Możesz przygotować przykład z kilkoma timerami z różnie upływającym czasem i automatyczne kasowanie timera ( setInterval ) przy wyzerowaniu czasu? Ten post edytował miccom 5.12.2015, 20:23:20 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Kod clearInterval(pushed - 1); Miałem napisać, że zwraca długość tablicy. A indeks ostatniego elementu to długość - 1. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 8 Dołączył: 7.07.2007 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Ok, poradziłem sobie w taki sposób, że dodałem zmienną tylko dla setInterval równą idTimera.
Więc aby wyłączyć timer należy tylko wykonać clearInterval
I pięknie działa. Dziękuje za naprowadzenie mnie na rozwiązanie. Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 08:14 |