Ответ 1
Попробуйте использовать not()
метод вместо :not()
селектор.
$(".content a").click(function() {
$(".content a").not(this).hide("slow");
});
У меня есть что-то вроде этого:
<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 в этом случае.
Попробуйте использовать not()
метод вместо :not()
селектор.
$(".content a").click(function() {
$(".content a").not(this).hide("slow");
});
Вы можете использовать not
, а не :not
:
$(".content a").not(this).hide("slow")
Вы также можете использовать метод 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()" и не запускать селектор ".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/