Menu accordéon reste ouvert
Bonjour,
J'ai suivie un tuto pour faire un menu accordéon. Tout fonctionne bien sauf que j'aimerais que après le click sur un sous-menu ou un sous-sous-menu il reste ouvert après la rechargement de la page. Comment je pourrais faire? Merci d'avance!
HTML:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <nav id="nav">
<ul>
<li class="current"><a href="#">Menu1</a></li>
<li class="toggleSousMenu"><span>Menu2</span>
<ul class="sousMenu">
<li><a href="#" title="">Sous-menu 2.1</a></li>
<li><a href="#" title="">Sous-menu 2.2</a></li>
</ul>
</li>
<li class="toggleSousMenu"><span>Menu3</span>
<ul class="sousMenu">
<li><a href="#" title="">Sous-menu 3.1</a></li>
<li><a href="#" title="">Sous-menu 3.2</a></li>
<li><a href="#" title="">Sous-menu 3.3</a></li>
<li><a href="#" title="">Sous-menu 3.4</a></li>
</ul>
</li>
<li class="toggleSousMenu"><span>Menu4</span>
<ul class="sousMenu">
<li><a href="#" title="">Sous-menu 4.1</a></li>
<li class="toggleSousMenu"><span>Sous-menu 4.2</span>
<ul class="sousMenu">
<li><a href="#" title="">Sous-sous menu 4.1.1</a></li>
<li><a href="#" title="">Sous-sous menu 4.1.2 </a></li>
<li><a href="#" title="">Sous-sous menu 4.1.3</a></li>
<li><a href="#" title="">Sous-sous menu 4.1.4 </a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Menu5</a></li>
<li><a href="#">Menu6</a></li>
</ul>
</nav> |
CSS:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| #nav {
list-style: none;
}
#nav ul {
background: #65597d;
color: #fff;
border: 1px solid #65597d;
margin-bottom: 1px;
list-style: none;
}
#menu_left ul a {
display: block;
color: #fff;
font: 1em "Trebuchet MS",Arial,sans-serif;
line-height: 1em;
text-align: center;
text-decoration: none;
padding: 4px 0;
}
#nav ul a:hover,#nav ul a:active{
background:#65597d;
text-decoration: underline ;
}
#nav ul a:focus{
background:#000000;
text-decoration: underline ;
}
#nav .sousMenu {
font-size: .8em;
background-color: #65597d;
font-size: .9em;
margin: 0;
padding: 0;
border-bottom: 1px solid #65597d;
}
#nav li.sousMenu a {
background: none;
padding: 3px 20px;
}
#nav a, #nav span {
display: block;
padding: 4px 10px;
color: #fff;
text-decoration: none;
background-color: #000000;
}
#nav .toggleSousMenu a, #nav .toggleSousMenu span {
background-color: #000000;
}
#nav .open a, #nav .open span {
background-color: #000000;
} |
Javascript:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| $(document).ready( function () {
// On cache les sous-menus :
$("#nav ul.sousMenu").hide();
// On sélectionne tous les items de liste portant la classe "toggleSubMenu"
// et on remplace l'élément span qu'ils contiennent par un lien :
$("#nav li.toggleSousMenu span").each( function () {
// On stocke le contenu du span :
var TexteSpan = $(this).text();
$(this).replaceWith('<a href="" title="Afficher le sous-menu">' + TexteSpan + '<\/a>') ;
} ) ;
// On modifie l'évènement "click" sur les liens dans les items de liste
// qui portent la classe "toggleSubMenu" :
$("#nav li.toggleSousMenu > a").click( function () {
// Si le sous-menu était déjà ouvert, on le referme :
if ($(this).next("ul.sousMenu:visible").length != 0) {
$(this).next("ul.sousMenu").slideUp("normal");
}
// Si le sous-menu est caché, on ferme les autres et on l'affiche :
else {
$("#nav ul.sousMenu").slideUp("normal");
$(this).next("ul.sousMenu").slideDown("normal");
}
// On empêche le navigateur de suivre le lien :
return false;
});
} ) ; |