Il y a une erreur de syntaxe avec votre balisage - le seul descendant direct valide d'un <ul>
l'élément est <li>
. Si vous souhaitez nicher votre liste, faites-le dans le <li>
lui-même:
<ul class="nav">
<li>
<a href="#">Test link</a>
<ul class="nav">
<li>Test under</li>
</ul>
</li>
</ul>
Pour faire basculer, nous demandons simplement de rechercher un frère <ul>
élément et appliquez le .slideToggle()
Méthode pour lui lorsque le lien est cliqué:
$(function() {
// Hide submenus
$(".nav ul").hide();
// Toggle nested <ul> (siblings of the link)
$(".nav > li > a").click(function(e) {
$(this).siblings("ul").slideToggle();
e.preventDefault();
});
});
Voici un violon de démonstration: http://jsfiddle.net/teddyrisé/2y9fz/ (Ajout de plus d'éléments de liste pour démontrer l'effet)