Autor Zpráva
MatějŠ
Profil
Dobrý den.
své stránce mám javascriptem zařízené menu. Problém je, že když kliknu na odkaz v menu, který někam vede tak se mi celé menu shodí. Nešlo by nějak nastavit, aby zůstala otevřena ta část menu, která la uživatelem již otevřena? Předem říkám že co se týče javascriptu, jsem absolutní lama. Tak předem děkuji za pomoc.
Str4wberry
Profil
Na to ani nepotřebuješ znalosti JavaScriptu. Stačí si uvědomit, co skript dělá, tj. přidává každému vnořenému <ul> třídu hidden. Ta má v CSS display: none. Takže stačí položce <li>, jejíž podnabídka má být rozbalená, přidat nějakou třídu a přes selektor .jménoTřídy .hidden zrušit display: none.
MatějŠ
Profil
To mě sice nenapadlo, ale když nastavim nějaké rozbalovací hodnot class nerozbalovat a ten pak nastavim v css,
.nerozbalovat .hidden {
display:list-item;
}


tak v tom případě je to menu ale rozevřené pořád. Já bych rád docílil toho, aby menu bylo zavřené a když si ho rozkliknu tak rozkliknuté zůstalo i po tom, co kliknu na některou položku menu. A když jej zavřu tak zase zůstalo zavřené. Je to moc komplikované?
Str4wberry
Profil
Tu třídu přidáš jen <li> navigaci, která má být na dané stránce rozbalená.
MatějŠ
Profil
Aha, takže jestli to chápu správně, tak natvrdo rozbalím menu vždy jen na stránce, kam se uživatel musel proklikat, namísto nějakého pamatování si v js. Už tomu rozumím a děkuji za pomoc.
Str4wberry
Profil
Ano, přijde mi to s ohledem na „co se týče javascriptu, jsem absolutní lama“ nejjednodušší. Pamatování v JS by šlo udělat ukládáním „stavu rozbalenosti“ do cookie nebo si aktivní položku seznamu zvýraznit na základě adresy (získané přes location.href).
MatějŠ
Profil
Str4wberry:
No tak tedkom zkouším nápad se speciálním class, ale je to velice kostrbaté. Takto rozbalené menu už uživatel nemůže schovat, takže opravdu by bylo asi lepší něco ve stylu pamatování v JS. Netuším samozřejmě jak složité to je, takže pokud by měl někdo trpělivost a odvahu mi s tím poradit, budu moc vděčný. Děkuji

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0