J'ai quelque chose comme ça:
<div class="content">
<a href="#">A</a>
</div>
<div class="content">
<a href="#">B</a>
</div>
<div class="content">
<a href="#">C</a>
</div>
Lorsque vous cliquez sur l'un de ces liens, je souhaite exécuter la fonction .hide () sur les liens sur lesquels vous n'avez pas cliqué. Je comprends que jQuery a le sélecteur: not selector, mais je ne vois pas comment l'utiliser dans ce cas car il est nécessaire que je sélectionne les liens à l'aide de $(".content a")
Je veux faire quelque chose comme
$(".content a").click(function()
{
$(".content a:not(this)").hide("slow");
});
mais je ne peux pas comprendre comment utiliser le sélecteur: pas correctement dans ce cas.
Vous pouvez également utiliser la méthode jQuery .siblings()
:
HTML
<div class="content">
<a href="#">A</a>
<a href="#">B</a>
<a href="#">C</a>
</div>
Javascript
$(".content").on('click', 'a', function(e) {
e.preventDefault();
$(this).siblings().hide('slow');
});
Démo de travail: http://jsfiddle.net/wTm5f/
Vous devez utiliser la méthode "siblings ()" et empêcher le sélecteur ".content a" de s'exécuter encore et encore juste pour appliquer cet effet:
HTML
<div class="content">
<a href="#">A</a>
</div>
<div class="content">
<a href="#">B</a>
</div>
<div class="content">
<a href="#">C</a>
</div>
CSS
.content {
background-color:red;
margin:10px;
}
.content.other {
background-color:yellow;
}
Javascript
$(".content a").click(function() {
var current = $(this).parent();
current.removeClass('other')
.siblings()
.addClass('other');
});
Voir ici: http://jsfiddle.net/3bzLV/1/