Как я могу исключить $(this) из селектора jQuery?



у меня что-то вроде этого:



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


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



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



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


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

548   4  

4 ответов:

попробуйте использовать not()метод вместо :not() селектор.

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

можно использовать not

вы также можете использовать 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');
});

рабочая демонстрация:http://jsfiddle.net/wTm5f/

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

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/

Comments

    Ничего не найдено.