Afficher/masquer les <li> par jQuery
J'ai le code html comme
<ul>
<li class="dropdown">text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li class="dropdown">text</li>
<li>text</li>
<li>text</li>
<li class="dropdown">text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
CSS:
li {display:none;}
li.dropdown {display:block;}
Lorsque l'on clique sur li.dropdown
, tous les <li>
sans classes, dans le courant de la prochaine li.dropdown
, doit devenir visible. Et en face de l'action quand on clique de nouveau - masquer <li>
sans classe dropdown
.
Comment puis-je faire cela?
OriginalL'auteur James | 2011-05-15
Vous devez vous connecter pour publier un commentaire.
La bonne façon de le faire est avec des sous-menus, donc:
Vous pouvez ensuite faire
Sinon, vous devrez utiliser
nextUntil
:Cela aura l'inconvénient de masquer chaque imbriqué
li
éléments individuellement, plutôt que comme un bloc. Faire le premier si vous le pouvez.Puis la deuxième réponse lonesomeday fourni est celui de droite
Vous pouvez toujours modifier la structure HTML avec jQuery (si vous en avez vraiment besoin de montrer/cacher comme un bloc). Sinon, nextUntil devrait fonctionner correctement.
OriginalL'auteur lonesomeday
Je vous conseille d'utiliser une liste imbriquée structure lik ceci:
Créer un CSS comme ceci:
Et ensuite seulement afficher/masquer la imbriqués les listes non ordonnées:
OriginalL'auteur Daff
Si vous avez l'élément de $déroulant variable, alors vous pouvez utiliser ceci:
Qui permet de masquer tous les pas .des listes déroulantes;
Pour ce faire jusqu'à la prochaine .liste déroulante, vous devrez utiliser:
OriginalL'auteur c-smile
Violon
OriginalL'auteur Anthony Accioly