Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] SetTimeout() i niepoprawnie działająca pętla
unnamedly
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 5.05.2012

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


Witam, mam taki kod:

  1. for(i = 15; i > 0; i--)
  2. {
  3. var b = i*100;
  4. var c = i*25;
  5. var e = 16-i;
  6. var f = (b+b)*e;
  7. $("#slidertitle3").animate({left: "0px"}, b);
  8. setTimeout(function() {
  9. $("#slidertitle3").animate({left: c+"px"}, b);
  10. }, f);
  11. }


[...] tyle, że zmienna i w 15 obiegach wynosi 1 (sprawdzone alertem w setTimeout(), jednak w alercie poza setTimeout zmienne poprawnie się zmniejszają (15,14,13 itd)). Co jest powodem i jak to ma poprawnie wyglądać?

Ten post edytował unnamedly 14.11.2012, 19:44:48
Go to the top of the page
+Quote Post
lukasz1985
post
Post #2





Grupa: Zarejestrowani
Postów: 205
Pomógł: 43
Dołączył: 5.03.2012

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


[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var i
  3. for(i = 15; i > 0; i--)
  4.  
  5. {
  6.  
  7. var b = i*100;
  8.  
  9. var c = i*25;
  10.  
  11. var e = 16-i;
  12.  
  13. var f = (b+b)*e;
  14.  
  15.  
  16. setTimeout(function(i) {
  17.  
  18. alert(i)
  19.  
  20.  
  21. }, f, i);
  22.  
  23. }
[JAVASCRIPT] pobierz, plaintext



ale nie będzie działać pod IE <=8.

Tak powinno działać wszędzie.
[JAVASCRIPT] pobierz, plaintext
  1. var i
  2. for (i = 15; i > 0; i--)
  3.  
  4. {
  5. var b = i * 100;
  6. var c = i * 25;
  7. var e = 16 - i;
  8. var f = (b + b) * e;
  9. var argument = i
  10.  
  11. nowyTimeout( function(argument) {
  12. alert(argument)
  13. }, f, argument)
  14. }
  15.  
  16. function nowyTimeout(funkcja, timeout, arg1, arg2, arg3, arg4) {
  17.  
  18. var funkcjaReferencja = function() {
  19. funkcja(arg1, arg2, arg3, arg4)
  20. }
  21. return setTimeout(funkcjaReferencja, timeout)
  22. }
[JAVASCRIPT] pobierz, plaintext




Ten post edytował lukasz1985 14.11.2012, 20:09:58
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 14:21