Autor Zpráva
avaster
Profil
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
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
skusal som aj toto .. na w3schools je to tak ako som to spravil ja tak som to napisal tak..
_es
Profil
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
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0