Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z działaniem prostego skrypu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
black_jack
Siemka,


  1. $(document).ready(function(){
  2.  
  3. do {
  4. setTimeout("$('div#product1').css('display', 'block')" , 1);
  5. setTimeout("$('div#product1').animate({ opacity: 0}, 800)", 5000);
  6. setTimeout("$('div#product1').css('display', 'none')" , 5800);
  7. setTimeout("$('div#product2').css('display', 'block')" , 5801);
  8. setTimeout("$('div#product2').animate({ opacity: 0}, 800)", 10000);
  9. setTimeout("$('div#product2').css('display', 'none')" , 10800);
  10. setTimeout("$('div#product3').css('display', 'block')" , 10801);
  11. setTimeout("$('div#product3').animate({ opacity: 0}, 800)", 15000);
  12. setTimeout("$('div#product3').css('display', 'none')", 15800);
  13. } while (true);
  14.  
  15. });



Nie rozumie zasady działania JQuery. Ten skrypt to bardzo prosty zarys działania mojego małego slidera. Przy chęci użycia powyższego kodu nawet dokument się nie załaduje a już zawieszona przeglądarka. Czemu kod wywołuje się co chwilę zamiast zaczekać na wykonanie instrukcji z do?

Proszę o pomoc w zapętleniu tych prostych instrukcji w nieskończoność.
Damonsson
A co jakbyś miał 20 produktów? ;P

Porównaj sobie np z tym: http://www.queness.com/post/152/simple-jqu...sparent-caption
mortus
W JavaScript-cie instrukcje na tym samym poziomie zagłębienia wykonywane są niejako "równolegle", zatem każdy setTimeout wykonuje się w tym samym czasie i pętla do ... while kontynuuje od razu działanie. W ogóle w implementacji takiego slider-a żadna pętla nie jest potrzebna, a tym bardziej pętla nieskończona, można przecież użyć właśnie setTimeout.
black_jack
No ale jak. Praktycznie na javascript przesiadłem się z cpp. To jest dla mnie niewyobrażalne sad.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.