Zdravim!
Potreboval bych udelat skryvani a odkryvani DIVu jednim tlacitkem:
Defaultne bude DIV skryty. Kliknutim na tlacitko, ktere k danemu DIVu patri by se mel div zobrazit. Po opetovnem kliknuti na toto same tlacitko by se mel DIV opet skryt.
Ovsem narazil jsem na problem. Nejak mi to ne a ne fungovat:
<SCRIPT>
function change_display(obj) {
if(typeof mode == 'undefined') mode = 1; //prvni spusteni
if(mode == 1) { //pokud chceme zobrazit
obj.style.display = ''; //zobrazime
mode = 0; //priste budem skryvat
}
if(mode == 0) { //pokud chcen skryt
obj.style.display = 'none';
mode = 1;
}
}
</SCRIPT>
<INPUT type="button" onclick="change_display(div_1)">
<DIV id="div_1" style="display: none;">
BAF!
</DIV>
Ak je mode rovné 0, vykoná sa podmienka if (mode == 0). Ale ak je mode rovné 1, vykoná sa if (mode == 1), kde sa nastaví mode na 0 a hneď za tým sa vykoná podmienka if (mode == 0), čím sa to znova skryje.
Takže pred if (mode == 0) patrí else.
A ešte aby to behalo aj inde než v IE, obsluha udalosti onclick bude vyzerať takto: change_display(document.getElementById('div_1'))
btw: celú funkciu change_display by som napísal takto:
function change_display (obj)
{
obj.style.display = (obj.style.display == "none"? "": "none");
}
>> obj.style.display = ''; //zobrazime
nema to byt nahodou: obj.style.display = "''; //zobrazime?
Zorro: to jsou imho dva apostrofy, což by mělo být stejně dobré jako dvě uvozovky ;-)
Pokud ho chceš mít opravdu skrytý a nepotřebuješ, aby ti dělal ve skrytém stavu místo, tak bych radil místo display použít visibility, je to rychlejší ;o)