Как по клику на «li» добавлять ему класс?

Есть разметка
<ul class="dropdown-menu" role="menu">
        <li class="vloading active"><a href="#">50</a></li>
        <li class="vloading "><a href="#">100</a></li>
        <li class="vloading "><a href="#">200</a></li>
    </ul>

Нужно , чтобы при клике на соответствующий елемент списка добавлялся к нему класс active . Как это сделать?
  • Вопрос задан
  • 583 просмотра
Пригласить эксперта
Ответы на вопрос 5
letehaha
@letehaha
Вникаю вo front-end
Matrosked
@Matrosked
senior fron-end developer
Если Вам к тому же надо сбрасывать active класс с других элементов по клику, а также используется jQuery на проекте, то:

var $els = $('.vloading'); // кэшируем ссылку на объекты
$els.on('click', function() {
   $els.removeClass('active');
   $(this).addClass('active');
})
Ответ написан
pxz
@pxz
✔ Совет: Вам помогли? Отметьте ответы решением.
Лучше вешать обработчик на родительский элемент или документ, а не на все элементы списка, потому что так будет один обработчик, а не столько, сколько элементов списка (это ещё не считая того, что они могут быть добавлены динамически и обработчика на новом элементе не будет, если сделать $('li').on(...)).

Вот набросал на JSFiddle.

$(document).on('click', '.dropdown-menu li', function(e) {
	var $li = $(this);
  $li.siblings(".active").removeClass('active');
  $li.addClass('active');
});
Ответ написан
@StiPAFk
$(твоя ли).click(function(){
$(this).removeClass('нужный класс'); //удалить
$(this).addClass('нужный класс');// добавить
})
Ответ написан
@denny911
$('.vloading').click(function(){
$('.vloading').removeClass('active');
$(this).toggleClass('active');
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы