Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] setInterval działa tylko raz
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
KotWButach
Cześć, mam problem, czy ktoś może wie dlaczego ten kawałek kodu wykonuje się tylko raz this.interval , w dodatku nie ważne jaki mu się czas ustawi wykonuje się raz od razu i potem już nic.

  1.  
  2. this.path = '.classtest';
  3.  
  4. this.interval = function () {
  5. // clearInterval(slideInterval);
  6.  
  7. slideInterval = setInterval(this.test(), 14000);
  8. }
  9.  
  10. this.test = function () {
  11. $(this.path).animate({left: '-100%'}, 1000, function () {
  12. $(this).find("li:last").after($(this).find("li:first"));
  13. $(this).css({left: "0%"});
  14. });
  15. }
  16.  


Udało się rozwiązać problem, szkoda że nie rozumiem dlaczego tak się stało ale wynik jest taki:
  1.  
  2. this.slideInterval = setInterval(function () {
  3. t.next(t);
  4. }, this.slideTime);
  5.  
nospor
Cytat
szkoda że nie rozumiem dlaczego tak się stało

Wyjasniam.
setInterval wymaga callback

To:
this.test()
nie jest callback. To jest natychmiastowe wywolanie funkcji, wiec dla setInterval przekazywales nie funkcje a wynik funkcji.

To
this.test
jest callback

Callbackiem jest rownie to co zrobiles za drugim podejsciem
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.