J'ai écrit ce simple bit de jQuery qui permute la classe ul contenant en fonction de l'ancre contenue qui est cliquée. Ça fonctionne bien, mais je sais que c'est en désordre. Je me demandais si quelqu'un pourrait indiquer un moyen de faire le même effet sans avoir à entrer manuellement chaque nom de classe. Je suis juste un newb jQuery et je cherche à en apprendre plus à ce sujet. J'imagine qu'il y a une fonction jQuery que je pourrais écrire qui n'impliquerait pas d'insérer manuellement tous les noms de classe, mais qui pourrait simplement prendre la classe de la balise d'ancrage et l'injecter dans ul.Échange de classes sur click avec jQuery, en utilisant des éléments de la classe
Le jQuery
$("#infosplashnav a.news").click(function() {
$(this).parents("ul:eq(0)").removeClass();
$(this).parents("ul:eq(0)").addClass("news");
});
$("#infosplashnav a.communitylife").click(function() {
$(this).parents("ul:eq(0)").removeClass();
$(this).parents("ul:eq(0)").addClass("communitylife");
});
$("#infosplashnav a.youth").click(function() {
$(this).parents("ul:eq(0)").removeClass();
$(this).parents("ul:eq(0)").addClass("youth");
});
Le code HTML
<ul id="infosplashnav" class="news">
<li><a href="#news" class="news">News & Events</a></li>
<li><a href="#communitylife" class="communitylife">Community Life</a></li>
<li><a href="#youth" class="youth">Youth</a></li>
</ul>
C'est exactement ce que je cherchais, jamais nouveau sur .closest ou en utilisant .attr de cette façon. Merci! Fonctionne comme un charme et fait beaucoup de sens. – jaasum
+1 pour l'utilisation la plus proche au lieu des parents, beaucoup plus vite! –
Un autre +1 pour «plus proche». Aussi en pensant à utiliser la classe de l'objet courant. Brillant! –