2010-04-23 5 views
1

Dire que j'ai une liste non ordonnée comme ceci:jquery problème sélectionnez

<ul> 
<li>Some Text</li> 
<li>Some Text</li> 
<li>Some Text</li> 
<li>Some Text</li> 
</ul> 

Je veux utiliser jquery de sorte que lorsque je clique sur un « li », les changements de fond au bleu. Donc, je le fais:

$('li').click(function() { 
    $(this).addClass('active'); 
}); 

Et la classe "active" a comme arrière-plan de bleu. Cependant, je ne peux pas comprendre comment faire en sorte que lorsque je clique sur un autre "li", l'autre "li" qui a un fond de bleu cesse d'avoir un arrière-plan de bleu. Je suppose que ce que j'essaie de dire est comment faire qu'un seul "li" ait un fond de bleu à la fois - en utilisant jquery.

Répondre

3

Vous pouvez le faire:

$('li').click(function() { 
    $('li.active').removeClass('active'); 
    $(this).addClass('active'); 
}); 

Cette approche sélectionne le .active en cours et supprime la classe de celui-ci avant de l'appliquer à celui que vous venez de cliquer.

+0

Oui, mais il supprime également la classe active de celle sur laquelle vous cliquez. J'ai besoin du dernier qui a été cliqué pour avoir le fond bleu. – codedude

+0

oh ça va ... j'ai foiré quelque chose dans mon code. Maintenant ça marche. Merci beaucoup! – codedude