UDAV99
@UDAV99
web программист, верстальщик

Как реализовать выборку и исключение на jquery?

Есть два списка (ul>li*10). Нужно чтобы при клике на li ко всем li кроме текущего применялось действие.

Это я вроде сделал (насколько правильно не уверен, можно наверняка лучше)
$('ul.left li, ul.right li').on('click', function () {
    var sel = $('ul.left li, ul.right li');
    sel.css('opacity','1');
    sel.not(this).css('opacity','.2');
    sel.addClass('active');
    sel.not(this).removeClass('active');
  });


И вот как теперь мне сделать возврат всех стилей при клике на li где есть класс active ?
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 1
KickeRocK
@KickeRocK
FrontFinish
$('ul.left li, ul.right li').on('click', function () {
    var sel = $('ul.left li, ul.right li');
    sel.hide();
    $(this).show();
  });

Если тебе не просто спрятать надо, то делаешь то, что нужно для всех и потом выделяешь конкретный. this тут именно для того чтобы понимать на какой ты кликнул(из всего массива li'шек)
Например, вместо .hide() и .show() дай им этот же класс active и ему задай стили, и тут будет кодаа меньше и в css просто стили(он именно для этого)
$('ul.left li, ul.right li').on('click', function () {
    var sel = $('ul.left li, ul.right li');
    sel.removeClass('active');
    $(this).addClass('active');
  });

.active {
opacity: 1;
}
ul.left li, ul.right li {
opacity: 0.2;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы