Autor | Zpráva | ||
---|---|---|---|
avaster Profil |
#1 · Zasláno: 18. 5. 2009, 11:32:22
vytvoril som kod (este tam budem vkladat zopar riadkov, teda sa ma nepitajte preco to robim cez jQuery):
$(document).ready(function() { var premenna = 2; var zvysok = 0; setInterval("obrazok()",3000); function obrazok(){ premenna += 1; zvysok = premenna % 2; if(zvysok == 0){ $('#download').html(zvysok); }else{ $('#download').html(zvysok); } } }); ak odtial vymazem ten setInterval a zavolam funkciu obrazok() tak funguje ako ma ale akonahle pouzijem setInterval tak mi to nefunguje; chybova konzola kazde 3 sekundy vypise undefined obrazok.. |
||
regy Profil |
#2 · Zasláno: 18. 5. 2009, 11:40:37
není to tím, že je funkce volána ještě dřív, než je vytvořena?
$(document).ready(function() { var premenna = 2; var zvysok = 0; function obrazok(){ premenna += 1; zvysok = premenna % 2; if(zvysok == 0){ $('#download').html(zvysok); }else{ $('#download').html(zvysok); } } setInterval("obrazok()",3000); }); |
||
avaster Profil |
#3 · Zasláno: 18. 5. 2009, 11:48:02
skusal som aj toto .. na w3schools je to tak ako som to spravil ja tak som to napisal tak..
|
||
_es Profil |
#4 · Zasláno: 18. 5. 2009, 12:05:52
avaster
Je použitá vnorená funkcia a pretože je setInterval nastavený pomocou reťazca, tak je funkcia obrazok nedefinovaná - globálne. Dá sa to napraviť pomocou setInterval(obrazok, 3000); , alebo definovaním funkcie obrazok ako globálnej. regy V tom tvojom kóde by mala nastať rovnaká chyba. Mätieš tým, že popisuješ "chybu", ktorá chybou nie je. Tento kód je bez chyby: f(); function f(){alert("hláška z funkcie f");} |
||
Chamurappi Profil |
#5 · Zasláno: 18. 5. 2009, 12:38:34
Reaguji na avastera:
Nikdy nedávej jako první argument setIntervalu řetězec, budeš mít čistší a přehlednější kód a ušetříš si podobné problémy. |
||
Časová prodleva: 15 let
|
0