Autor | Zpráva | ||
---|---|---|---|
Nich Profil |
#1 · Zasláno: 3. 8. 2010, 12:57:45
Mám tento javascript:
function dal() { //Uživatel je tu poprvé if(show == null) {var show = 1; } //Počet obrázků var max = <?php echo $_SESSION['max'] ?>; //Další obrázek var show = show + 1; //Pokud není další obrázek, vrátím se na začátek if(show > max) {show = 1;} //Změna document.images['obr'].src='/images/obr_'+show+'.jpg'; } Problém je v tom, že mi to vždycky projde tou první podmínkou takže je proměnná show pořád nastavená na 1 --> takže se sice dostanu z prvního obrázku na druhý, ale na třetí už ne :-( |
||
Pan X Profil |
#2 · Zasláno: 3. 8. 2010, 13:28:40 · Upravil/a: Pan X
Nich:
Pokud se nepletu v Javascriptu prázdná poměná nemá hodnotu null pokud není ještě deklarovaná bude mít undefined if(show == undefined) |
||
Nich Profil |
#3 · Zasláno: 3. 8. 2010, 17:01:18
Pan X:
no tak to undefined nepomohlo ... ja právě nevím čemu se rovná nedefinovaná proměnná bez žádné hodnoty, takže to nemůžu ani ověřovat :-( |
||
_es Profil |
#4 · Zasláno: 3. 8. 2010, 17:17:58
Nich:
Skús zrozumiteľne a podrobne vysvetliť, o čo sa pokúšaš, s odkazom na stránku. Z toho tvojho kódu a popisu to nepochopí asi nikto. Pan X: „pokud není ještě deklarovaná bude mít undefined“ To áno, no zároveň platí, že null == undefined , takže tá zmena nebude mať žiadny vplyv.
|
||
Nich Profil |
#5 · Zasláno: 3. 8. 2010, 18:00:31
_es:
Dělám to na localhostu takže link nedám, ale vysvětlit můžu určitě (; Takže na stránce mám obrázek a pomocí dvou šipek (doleva, doprava) chci, aby se tento obrázek změnil. Obrázky jsou 4. Po kliknutí na šipku se přejde na další nebo se vratím na ten co tam byl (to záleží na šipce). Měl sem to udělané přes PHP, ale nelíbilo se mi to kvůli nutnosti načítání celé stránky, takže jsem chtěl zapojit javascript. Tohle je teda onen obrázek: <img src='images/obr_1.jpg' name='obr' /> Pod obrázkem mám dvě tlačítka: <input type="submit" value="" name='dal' id='dopravaa' class='sipka' alt="" onclick="dal()" /> <input type="submit" value="" name='zpet' id='dolevaa' class='sipka' alt="" onclick="zpet()" /> Potom php script, který mi zjistí kolik mám ve složce obrázků: //Zjistí se počet slidů pro zobrazení if($_SESSION['max'] == "") { function pocett($directory='.') { return count(glob($directory."/images/obr_*.jpg")); } $_SESSION['max'] = pocett(); } No a nakonec js (je to zatím jen funkce na šipku doprava): function dal() { //Uživatel je tu poprvé ---> proměnná show představuje číslo aktuálního obrázku (pokud je tu uživatel poprvé tak je to "obr_1.jpg" if(show == null) {var show = 1; } //Počet obrázků var max = <?php echo $_SESSION['max'] ?>; //Další obrázek ---> zvětšujeme proměnou show o 1 tzn. další obrázek bude "obr_2.jpg" var show = show + 1; //Pokud není další obrázek, vrátím se na začátek ---> tato podmínka nastane pokud bude show = 5 , obrázky mám zatím jen 4 tzn. že se vracím na první obrázek if(show > max) {show = 1;} //Změna ---> no a tady to by mělo způsobit změnu onného obrázku document.images['obr'].src='/images/obr_'+show+'.jpg'; } No a problém je v tom, že if(show == null) |
||
_es Profil |
#6 · Zasláno: 3. 8. 2010, 18:37:39 · Upravil/a: _es
Premenná
show je lokálna premenná funkcie dal .
Preto je jej hodnota vo funkcii na začiatku a pri každom zavolaní funkcie undefined .
Asi si chcel použiť globálnu premennú: 1) Niekde mimo funkcie, ešte pred funkciu dal , pridaj príkaz: var show=1;
2) Odstráň 4. riadok. 3) Z 8. riadku odstráň var .
|
||
Nich Profil |
#7 · Zasláno: 3. 8. 2010, 18:43:50
_es:
super, moc díky, nedošlo mi, že potřebuju tu globální proměnnou (; |
||
Časová prodleva: 14 let
|
0