Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Niedzialajacy clearInterval
Forum PHP.pl > Forum > Przedszkole
MateuszS
Czesc,

Moglibyscie powiedziec czemu tutaj nie jest czyszczony interval? Po kliknieciu na node'a (wiersz w tabeli), wysiwetla sie dialog i potem zalacza sie interval. Przy zamykaniu okna powinien sie czyscic ale to sie nie dzieje.

[JAVASCRIPT] pobierz, plaintext
  1. var jenkinsConsoleInterval;
  2. $(node).click(function() {
  3.  
  4. clearInterval(jenkinsConsoleInterval);
  5.  
  6. $('#div-details-dialog').dialog({
  7. ...........
  8. open: function() {
  9. $('#a-tab-jenkins-console').click(function() {
  10. jenkinsConsoleInterval = setInterval(function () {
  11. jQuery.ajax({
  12. url: 'JenkinsConsole.php',
  13. type: 'GET',
  14. data: { url: record.buildUrl + '/consoleText' },
  15. success: function(result) {
  16. $('#textarea-jenkins-console').html(result);
  17. $('#textarea-jenkins-console').scrollTop($('#textarea-jenkins-console')[0].scrollHeight);
  18. }
  19. });
  20. }, 1000);
  21. });
  22. },
  23. close: function() {
  24. if(jenkinsConsoleInterval) {
  25. clearInterval(jenkinsConsoleInterval);
  26. }
  27.  
  28. }
[JAVASCRIPT] pobierz, plaintext
trueblue
A nie nadpisujesz w innej/podobnej funkcji id tego timera?
MateuszS
Cytat(trueblue @ 12.09.2016, 13:44:52 ) *
A nie nadpisujesz w innej/podobnej funkcji id tego timera?


Nie, uzywam tylko w tym jednym miejscu setIntervala. Gdy klikne w inny wiersz, owszem, on sie nadpisze ale zeby moc kliknac inny wiersz najpierw trzeba wylaczyc dialog obecnego (czyli funkcja close powinna sie wykonac)
trueblue
Sprawdź dla pewności jakie id ma timer przy inicjacji i podczas czyszczenia (console.log).
MateuszS
No wlasnie przy kolejnym odpaleniu intervala cos sie wali bo przy pojedynczym kliku na odpalenie dialogu on odbiera to jako dwa i tworzy 2 intervaly zamiast 1 (i usuwa tylko ten nowszy)
nospor
$('#a-tab-jenkins-console').click(function() {
O tu za kazdym razem jak otwierasz dialog to dopisujesz kolejne zdarzenie CLICK w ktorym to tworzysz kolejny interval. Jak wiec otworzysz dialog 3 razy to i 3 razy ci sie wykona click w #a-tab-jenkins-console
MateuszS
Cytat(nospor @ 12.09.2016, 14:29:16 ) *
$('#a-tab-jenkins-console').click(function() {
O tu za kazdym razem jak otwierasz dialog to dopisujesz kolejne zdarzenie CLICK w ktorym to tworzysz kolejny interval. Jak wiec otworzysz dialog 3 razy to i 3 razy ci sie wykona click w #a-tab-jenkins-console


Tak, wlasnie mialem pisac ze interval w onClicku to nie jest dobry pomysl. Dzieki
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.