Autor | Zpráva | ||
---|---|---|---|
tuzticzka Profil |
#1 · Zasláno: 3. 12. 2005, 23:11:05
Ahoj, mám takovýto problém: Nadefinoval jsem si funkci, která mi má spočítat počet SPAŃů s barvou Navy na pozadí. Problém se vyskytuje až při druhém zavolání funkce...
Tady jsou úryvky zdroje v JS: //Tyhle dvě deklarace jsou nepodstatné pro chod funkce csirka=1; cvyska=1; function s(sloupec) { sstart_h=sloupec; konec_h=sloupec+csirka*5*cvyska*5-csirka*5; docasnaP=0; kod_h=""; barva=""; s=0; konec_c=csirka*5; cc=""; for(a=sstart_h;a<=konec_h;a+=konec_c) { //zjištování informace o políčku obj=document.getElementById('n'+a); barva=obj.style.backgroundColor; //když zjištěná barva souhlasí proměnná s dostane nějakou hodnotu if(barva=="navy") s=1; else s=0; //tohle tady je jenom abych měl přehled co se kde děje cc+=a+"="+barva+", s="+s+"\n"; } alert(cc); } HTML: <span id="n0" style="background-color: navy"><span> <span id="n1" style="background-color: navy"><span> <span id="n2" style="background-color: navy"><span> <span id="n3" style="background-color: navy"><span> <span id="n4"><span> <span id="n5"><span> <span id="n6"><span> <span id="n7"><span> <span id="n8"><span> <span id="n9"><span> Vážně to nechápu, v JS napíšu s(0);s(1);(nebo pořád tu samou s(0);s(0);) a první spuštění je OK, ale u toho dalšího zavolání to najednou vyhodí chybovou hlášku, že na řádku 1 a znaku 1 Byla očekávána funkce(na určeném místě nic samozřejmě nic není). Tak co, nevíte co jsem tam napsal špatně? Díky Martin |
||
Oswald Profil |
#2 · Zasláno: 3. 12. 2005, 23:21:54
Tíhmle si přemažeš globální proměnnou s, která do té doby byla odkazem na funkci. Proto je chyba uaž při druhém zavolání. Pokud chceš ve funkci vytvářet lokální proměnné, musíš je deklarovat:
|
||
tuzticzka Profil |
#3 · Zasláno: 3. 12. 2005, 23:29:24
To snad není možné! Jedno chybějící var a taková hromada problémů. Opravdu to funguje :))
Oswald - díky moc, taková drobnost by mě ani ve snu nenapadla |
||
Tomik Profil |
#4 · Zasláno: 3. 12. 2005, 23:31:38
A to má jen pár řádků, už si někdy ladil script třeba o více jak 1000ti řádcích? To je pak legrace... ;)
|
||
Leo Profil |
#5 · Zasláno: 4. 12. 2005, 00:31:50
"Pokud chceš ve funkci vytvářet lokální proměnné, musíš je deklarovat: var s=0;"
Nebo jeste lip, nepouzivat dvakrat stejny identifikator promenne (do cehoz spadaji i nazvy funkci). Leo |
||
tuzticzka Profil |
#6 · Zasláno: 4. 12. 2005, 12:28:31
Takže pokud jsem to dobře pochopil, var je dobré používat (i preventivně) při deklaraci jakékoliv proměnné, jo?
|
||
Leo Profil |
#7 · Zasláno: 4. 12. 2005, 14:22:41
"Takže pokud jsem to dobře pochopil, var je dobré používat (i preventivně) při deklaraci jakékoliv proměnné, jo?"
To v kazdem pripade. Leo |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0