Bonjour,
Ça a l'air de marcher sans rien faire de spécial.
Tu mets juste tes deux menus avec les mêmes classes.
Ci-dessous un exemple complet avec 2 menus. Il n'y a que les textes affichés qui changent, toute la structure est la même, y compris le nom des classes (j'ai pris exactement le même code que l'exemple que tu as cité).
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<style>
.navigation {
margin: 0;
padding: 0;
list-style: none;
background: #000;
color: #fff;
width: 200px;
font: 1.2em "Trebuchet MS", sans-serif;
}
.navigation a, .navigation span {
display: block;
padding: 4px 10px;
color: #fff;
text-decoration: none;
background: #000 url(menu-item.png) left bottom no-repeat;
}
.navigation .toggleSubMenu a, .navigation .toggleSubMenu span {
background-image: url(menu-item-deroule.png);
}
.navigation .open a, .navigation .open span {
background-image: url(menu-item-enroule.png);
}
.navigation a:hover, .navigation a:focus, .navigation a:active {
text-decoration: underline;
}
.navigation .subMenu {
font-size: .8em;
background: #ccc url(subMenu.png) 0 0 repeat-x;
font-size: .9em;
margin: 0;
padding: 0;
border-bottom: 1px solid #666;
}
.navigation ul.subMenu a {
background: none;
padding: 3px 20px;
}
</style>
</head>
<body>
<ul class="navigation">
<li><a href="#" title="Aller à la page 1">Page 1</a></li>
<li class="toggleSubMenu"><span>Page 2</span>
<ul class="subMenu">
<li><a href="#" title="Aller à la page 2.1">Page 2.1</a></li>
<li><a href="#" title="Aller à la page 2.2">Page 2.2</a></li>
<li><a href="#" title="Aller à la page 2.3">Page 2.3</a></li>
</ul>
</li>
<li class="toggleSubMenu"><span>Page 3</span>
<ul class="subMenu">
<li><a href="#" title="Aller à la page 3.1">Page 3.1</a></li>
<li><a href="#" title="Aller à la page 3.2">Page 3.2</a></li>
</ul>
</li>
<li><a href="#" title="Aller à la page 4">Page 4</a></li>
</ul>
<ul class="navigation">
<li><a href="#" title="Aller à l'autre page 1">L'autre page 1</a></li>
<li class="toggleSubMenu"><span>L'autre page 2</span>
<ul class="subMenu">
<li><a href="#" title="Aller à l'autre page 2.1">L'autre page 2.1</a></li>
<li><a href="#" title="Aller à l'autre page 2.2">L'autre page 2.2</a></li>
<li><a href="#" title="Aller à l'autre page 2.3">L'autre page 2.3</a></li>
</ul>
</li>
<li class="toggleSubMenu"><span>L'autre page 3</span>
<ul class="subMenu">
<li><a href="#" title="Aller à l'autre page 3.1">L'autre page 3.1</a></li>
<li><a href="#" title="Aller à l'autre page 3.2">L'autre page 3.2</a></li>
</ul>
</li>
<li><a href="#" title="Aller à l'autre page 4">L'autre page 4</a></li>
</ul>
<script>
$(document).ready( function () {
// On cache les sous-menus :
$(".navigation ul.subMenu").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 :
$(".navigation li.toggleSubMenu 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" :
$(".navigation li.toggleSubMenu > a").click( function () {
// Si le sous-menu était déjà ouvert, on le referme :
if ($(this).next("ul.subMenu:visible").length != 0) {
$(this).next("ul.subMenu").slideUp("normal");
}
// Si le sous-menu est caché, on ferme les autres et on l'affiche :
else {
$(".navigation ul.subMenu").slideUp("normal");
$(this).next("ul.subMenu").slideDown("normal");
}
// On empêche le navigateur de suivre le lien :
return false;
});
} ) ;
</script>
</body>
</html>
Amicalement,
Modifié par parsimonhi (19 Oct 2020 - 23:19)