J'ai une barre de navigation qui a deux listes déroulantes (comme ul's imbriqués). J'essaye de basculer les subnavs quand son parent est cliqué. Ou masquer une sous-navigation lorsque l'autre parent est cliqué. Voici le balisage:Est-ce la meilleure façon de faire cela?
<div id="nav-bar">
<a href="#">A link</a> |
<ul>
<li id="feedback">
<a href="javascript:void(0);">Feedback</a>
<ul class="subnav">
<li><a href="#">Give us feedback</a></li>
</ul>
</li>
</ul> |
<a href="#">Another link</a> |
<ul>
<li id="location">
<a href="javascript:void(0);">Pick your location</a>
<ul class="subnav">
<li><a href="#">Los Angeles</a></li>
<li><a href="#">New York</a></li>
</ul>
</li>
</ul>
</div>
Et le code:
//hide the subnavs and give them a little down arrow
$('ul.subnav').hide().parent().append('<small>▼</small>');
// show its subnav when clicked
$('#nav-bar ul li').click(function() {
var subnav = $(this).children('ul.subnav');
// hide the other's subnav if it's visible
if ($(this).attr('id') == 'location') {
subnav.toggle();
$('li#feedback').children('ul.subnav').hide();
} else {
subnav.toggle();
$('li#location').children('ul.subnav').hide();
}
});
Encore un novice à JS et jQuery, je voudrais savoir s'il y a une façon moins détaillée pour accomplir ce que je suis en train de faire ci-dessus. Edit: Une meilleure question est, est-il un moyen de le faire sans avoir à donner explicitement le li's un ID?
Vous devriez dire ce que vous essayez d'atteindre .. plutôt que de laisser les gens essayer de le comprendre à partir de votre code .. comment savons-nous ce que vous essayez de faire est ce que votre code est? – Layke
J'essaie de basculer les sous-contacts lorsque l'on clique sur son parent. Ou masquer une sous-navigation lorsque l'autre parent est cliqué. – farkenfooken
Heed Laykes. Vous devez fournir une explication de ce que vous essayez de faire et, en particulier, de ce que vous n'aimez pas dans la façon dont vous le faites actuellement. –