J'ai des boutons qui invitent jQuery à supprimer et à remplacer leur classe quand on clique dessus. L'événement jQuery.mouseover que je veux appeler ignore les classes manipulées et n'obéit qu'aux classes du chargement de la page.Les sélecteurs jQuery ignorent les classes qui sont manipulées après le chargement de la page.
Voici un exemple JSFiddle
Détails ci-dessous:
J'ai une rangée de boutons qui, lorsqu'il est enroulé sur appeler une jQuery pour ajouter une classe .highlighted à des objets ailleurs sur la page:
Voici par exemple HTML:
<ul id="portfolioLinks">
<li class="activeButton kittens"><a class="kittens" href="#"></a></li>
<li class="activeButton otters"><a class="otters" href="#"></a></li>
<li class="depressed donkey"><a class="donkey" href="#"></a></li>
</ul>
et le code jQuery correspondant:
var selectedType = '.' + $(this).attr('class');
$("li.activeButton a").mouseenter(function() {
var selectedType = '.' + $(this).attr('class');
$("div.pageContent div" + selectedType).addClass('highlighted');
});
$("#portfolioLinks a").mouseleave(function() {
$("div.pageContent div").removeClass('highlighted');
});
Cela fonctionne bien sur le contenu statique de la charge de page, mais lorsque je clique sur un bouton je reçois jQuery pour ajouter une classe .depressed
à $(this)
et donner à tous les autres .activeButton
:
$("#portfolioLinks a").click(function() {
$("#portfolioLinks li").addClass('activeButton').removeClass('depressed');
$(this).parent().removeClass('activeButton').addClass('depressed');
//do some other stuff
});
Cependant, il semble ignorer complètement les classes modifiées et continue de mettre en évidence les divs correspondant à un bouton qui n'a pas la classe .activeButton
.
J'ai passé la majeure partie de la nuit dernière et ce matin à essayer de comprendre cela. J'ai essayé toutes sortes de .not
s, :not
s et if
s, et je suis maintenant complètement perdu.
Toute orientation serait extrêmement appréciée.
Impressionnant, je vous remercie beaucoup pour votre aide! Je ne rencontrerais jamais .live() et .delegate() auparavant. Ils ressemblent à la façon de faire les choses! –
@ Magnakai - bienvenue! –