| 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: 16 let
|
|||
0