JavaScript nyelven írt dátum idő visszaszámláló miért nem frissít?
Sziasztok!
Már 2 napja töröm a fejemet, hogy mit rontottam el a programomban. Egy nap idő visszaszámláló programról van szó. A gondom az vele, hogy a képernyőn nem frissíti a vissza számlálást, csak ha frissítem az oldalt, a dolog egészen addig működött jól amíg nem raktam bele egy funkcióba az egészet. Onnantól kezdve nem frissíti, csak ha rásegítek.
A kód itt érhető el.:
Köszönöm előre is a segítségeteket!
A kód ott nem érhető el, de lehetőleg ne RAR fájlokban oszd meg; ott a pastebin.
Valószínűleg rosszul emelted át a megoldásodat függvénybe, és eltörik.
Kieg.: Nézd meg a böngésződ hibakonzolját, reklamál-e valamiért.
Chrome: Ctrl+Shift+J
Firefox: Ctrl+Shift+K (ha jól emlékszem)
IE: F12 -> Konzol/Console
Csak ennyi a panasza, hogy nincs definiálva az egyik függvényem.
"ReferenceError: Vissza_Szamolas is not defined"
Tehát a keresett függvény nem létezik - és ezzel a névvel talán jobb is ;) -, te pedig megpróbálod meghívni.
Nézd át mégegyszer a kódot, hogy, hogy hol próbálsz meg nemlétező szubrutint hívni és miért. Rosszul hívod, vagy léteznie kellene? Ha előbbi, javítsd ki.
Ha utóbbi, akkor jön a következő kérdés: Miért nem létezik?
Első blikkre talán a sorrend lehet a ludas. A JS engine olyan sorrendben értelmezi a kódot, ahogyan megtalálja. A következő például el fog hasalni:
helloWorld();
function helloWorld() {
˙˙˙˙alert('Hello, World!');
};
A parser még nem jutott el odáig, hogy tudja, mi az a "helloWorld", de már megpróbáltuk meghívni. Nyilván nem fog menni.
Ezt viszont megteheted:
function helloWorld() {
˙˙˙˙sayHello();
};
function sayHello() {
˙˙˙˙alert('Hello, World!');
};
helloWorld();
Miért? Mert a "helloWorld" függvény tartalmát ugyan megadjuk, lefutni ettől még nem fog, így a JS motor nem kezdi el egyből keresni a még nem létező "sayHello"-t. Majd runtime. Mire az utolsó sorban meghívjuk "helloWorld"-öt, addigra "sayHello" is létezik, így az egész rendben lefut és mindenki boldog.
Összegezve: Minden függvényt még azelőtt kell megadni, mielőtt először futtatnád. Ennek persze egyértelműnek kellene lennie, de sokan beleesnek ebbe a csapdába.
Ha nem ez a gond, akkor így, látatlanban elég nehéz ötletelni...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!