jQuery: исключить $ (this) из селектора



Answers

Вы можете использовать функцию not а не :not selector:

$(".content a").not(this).hide("slow")
Question

У меня есть что-то вроде этого:

<div class="content">
    <a href="#">A</a>
</div>
<div class="content">
    <a href="#">B</a>
</div>
<div class="content">
    <a href="#">C</a>
</div>

Когда одна из этих ссылок нажата, я хочу выполнить функцию .hide () на ссылках, которые не нажаты. Я понимаю, что jQuery имеет: not selector, но я не могу понять, как его использовать в этом случае, потому что необходимо, чтобы я выбирал ссылки, используя $(".content a")

Я хочу сделать что-то вроде

$(".content a").click(function()
{
    $(".content a:not(this)").hide("slow");
});

но я не могу понять, как правильно использовать: not selector в этом случае.




Вы должны использовать метод «siblings ()» и не запускать селектор «.content a» снова и снова только для применения этого эффекта:

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');
});

См. Здесь: http://jsfiddle.net/3bzLV/1/




Related