Autor Zpráva
McM
Profil *
Dobrý den mám problém.

jako menu při své práci na webu jsem použil trochu asi netradiční způsob a to způsob roklikávací. Tzn. že vždy nejdříve rokliknu nějaký prvek dejem tomu základní škola a z toho mi vyjedou terpve třídy a ty odkazují na stránku. Více méně to vypadá asi takto:
před rozkliknutím
ZÁKLADNÍ ŠKOLA
STŘEDNÍ ŠKOLA
VYSOKÁ ŠKOLA
po rozkliknutí
ZÁKLADNÍ ŠKOLA
STŘEDNÍ ŠKOLA
1.a
2.a
3.a
4.a
...
9.a
VYSOKÁ ŠKOLA


Pokud rozkliknu vysokou školu tak bych chtěl aby se mi střední škola zavřela. zkoušel jsem onclick ale to mi vždy zůstane otevřené takže pokud rozkliknu těchto prvků více vyjedu jakoby ze čtverce který tomu mám vymezený. Potřeboval bych tedy aby když rozkliknu střední školu a poté vysokou aby zároven s rozkliknutím vysoké se zavřela střední a nemusel jí zpětně zavírat dalším kliknutím... Tak snad jsem problém popsal jasně.
johnl
Profil
Pomohlo by, kdyby jsi sem poslal kód celého menu.. Každopádně můžeš si vytvořit např. funkci která bude fungovat nějak tak, že po spuštění bude předaný parametr které menu se má rozkliknout a tomu se nastaví display: block; a ostatním hidden či nějak podobně..
McM
Profil *
tak takhle to vypadá

<script>
function zobrazSkryj(idecko){
el=document.getElementById(idecko).style;
el.display=(el.display == 'block')?'none':'block';
}
</script>
<style>
h3 {cursor: pointer; cursor: hand; text-decoration: underline}
.skryvany {display: none}
</style>


<h3 onclick="zobrazSkryj('oddil2');return false"><a href="#"><img src="2. ročník.png" width="180" height="45"></h3><div id="oddil2" class="skryvany">
1.řádek
2.řádek
3.řádek
4.řádek
</div>
<h3 onclick="zobrazSkryj('oddil3');return false"><a href="#"><img src="3. ročník.png" width="180" height="45"></h3><div id="oddil3" class="skryvany"> 1.řádek
2.řádek
3.řádek
4.řádek
5.řádek
</div>
sysel
Profil
To je hezky napsáno pro případ s jedním rozklikávacím polem. Ale pro více svázaných polí je nutno funkci navrhnout tak, aby:
- si nejprve zapamatovala, co má nakonec být rozkliknuto (jestli je kliknuto na element, který je rozkliknutý, tak na konci nemá být asi rozkliknuto nic - že?)
- všechna pole --sklika--
- rozklikla to, které si pamatuje, že má být rokliknuto

Je samozřejmě možné pamatovat si naposledy rozkliknuté pole, nebo projít všechna pole s testem na rokliknutost a jen to rozkliknuté --skliknout-- ale skript je dostatečně rychlý a prvně uvedený návrh bude dostačující, navíc spolehlivý.

Pokud mohu doporučit, lze se šikovně vyhnout přemíře id-ček použitím this.neco this.parentNode.neco nebo naopak se vnořit do potřebné úrovně this.childNodes[] elementu nebo použít k procházení stromu elementů this.nextSiblink.
Ale bez toho to bude také fungovat.
Hezký den

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0