par
djtec » 07 oct. 2010, 22:08
Bonsoir,
Voilà je voudrais faire un menu accordéon mais il veut pas fonctionner lol.
Le principe c'est qu'il ferme les éléments ouvert pour ouvrir celui sur le quel on a cliqué.
Mais voilà moi le premier lien n'as pas de sous menu donc en faites c'est ça qui fait tout bugger chez moi car quand je clique pour faire apparaitre le sous-menu il s'ouvre mais il se referme direct. Par contre quand je fais en sorte que un sous menu soit ouvert au départ là magie ça fonctionne. Donc c'est que c'est mon premier lien qui fou le bordel car y a pas de sous menu.
Voici mon code html:
<ul>
<li class="active">
<span><a href="">Accueil</a></span>
</li>
<li >
<span>News</span>
<ul>
<li >
<a href="">Voir toute les news</a>
</li>
<li >
<a href="">Créer une news</a>
</li>
<li >
<a href="">Gérer les catégories</a>
</li>
<li >
<a href="">Gérer les commentaires</a>
</li>
</ul>
</li>
<li >
<span>News</span>
<ul>
<li >
<a href="">Voir toute les news</a>
</li>
<li >
<a href="">Créer une news</a>
</li>
<li >
<a href="">Gérer les catégories</a>
</li>
<li >
<a href="">Gérer les commentaires</a>
</li>
</ul>
</li>
</ul>
Et voici mon js:
$('.sidebar .menu ul ul').hide();
$('.sidebar .menu ul li.active ul').show();
$('.sidebar .menu ul li span').css({'cursor' : 'pointer'});
$('.sidebar .menu ul li').click(function () {
if($(this).find("ul:visible").length != 0) {
$(this).find("ul").slideUp(150);
} else {
$(".sidebar .menu ul li ul").slideUp(150);
$(this).find("ul").slideDown(200);
}
return false;
});
Moi ça fait deux heures que je recherche et je trouve pas la solution donc je me remet à vos connaissance.
Merci d'avance...