Autor Zpráva
Haňulík
Profil
Dobrý den,

potřebuji udělat vertical dropdown menu. Mám následující kod:

<div class="menu_vlevo">
<h2></h2>
 <ul>
        <li><a href="#">Menu 1</a></li>
        <li><a href="#">Menu 2</a>
            <ul>
                <li><a href="#">Sub menu 1</a></li>
                <li><a href="#">Sub menu 2</a></li>
            </ul>
        </li>
        <li><a href="#">Menu 3</a></li>
        <li><a href="#">Menu 4</a></li>
    </ul>

<script>
$(document).ready(function(){
    $('li').click(function(){
        $(this).children('ul').toggle();
    });
});
</script>

<style>

.menu_vlevo
{
    float:left;
  padding:0px 0px 20px 0px; 
  min-height:250px; 
  width:25%;
  position:relative; 
}

.menu_vlevo ul
{
      list-style: none;
    margin: 0;
    padding: 0;
} 

.menu_vlevo li 
{
    
    color: #00cccc; 
    padding: 4px 0px 8px 0px;
    text-decoration: none;
    list-style:none;
    
}

.menu_vlevo li a
{
      display: inline-block;
    color: #00cccc; 
    padding: 4px 0px 8px 27px;
    text-decoration: none;
    list-style:none;
    
}

.menu_vlevo li a:hover
{
      display: inline-block;
    color: #ff6600; 
    padding: 4px 0px 8px 27px;
    text-decoration: none;
    list-style:none;
    background:url('../img/linka_side.gif');
}


.menu_vlevo li ul
{
    display:none;
    padding-left:20px;
}



.menu_vlevo li li a
{
    line-height:120%;
    
}
</style>

Při kliku na položku, která rozbaluje, bych potřeboval, aby tam to rozbalené menu zůstalo. Funguje to, pokud mám adresu a rel="nofollow" href="" prázdnou, ale pokud začnu směrovat na stránku, kam má,tak se to přesměruje, což je logické, já vím. Máte někdo radu? Změnit strukturu menu, nebo jde nějak pozměnit ten script?

Děkuji
Tomáš123
Profil
Haňulík:
Je celkom zaužívané, že sa menu rozbalí pri nájdení myšky (bez symbolu užívateľ často podmenu prehliadne a neklikne na nadradenú položku). To ide zariadiť s dobrou podporou v čistom CSS. Problém ale nastáva pri mobilných zariadeniach, kde :hover síce ide vyvolať, ale nanešťastie pri odkazoch bez aktivovania linku dosť obtiažne. Fisir tu kedysi spomínal náhradu pomocou pseudotried :focus a :active. Tie ale takisto nezabránia prepojeniu po kliknutí.

JavaScriptom by zrejme šlo zariadiť, aby sa napríklad po prvom kliknutí otvorilo menu a po druhom prepojilo na cieľovú adresu odkazu (pričom väčšina ľudí by druhýkrát neklikla alebo klikla preto aby vysunutú ponuku zavrela). Ďalšou možnosťou by bolo JavaScriptom odstrániť hodnotu atribútu href a v podmenu vygenerovať ako obsah prvej položky kópiu s funkčným odkazom. Obdobného cieľa by si mohol dosiahnuť napríklad zmením štruktúry položiek vedúcich podmenu:
<li><a href="#">Text odkazu</a><span>Text odkazu</span>
... pričom by si zneviditeľňoval <span> respektíve pozicioval <a> podľa zariadenia. Tento postup je ale okrem nevýhody zložitosti náchylný aj na potenciálne vytekanie obsahu, či inak závadný vzhľad. Funguje ale bez JS.
radekt
Profil
Řešil jsem něco podobného, když jsem potřeboval pro mobilní rozlišení, aby zvolená nadřízená položka zůstala rozbalená a dalo se tapnout na její podřízené položky. Pomohlo mi tohle: Pure CSS Mobile-compatible Responsive Dropdown Menu.

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: