Alexanevsky
@Alexanevsky
Любительская web-разработка

Как добавить класс блоку при клике в любом его месте, но ничего не добавлять при клике по ссылке внутри него?

Здравствуйте!

TR, DR: Необходимо сделать так, чтобы при клике на блок ему добавлялся определённый class (при повторном клике - убирался). Всё вроде как легко, но есть один подводный камень: class должен добавляться при клике по любому месту в блоке, но не по ссылке, находящейся в нём.

Объясню на примере:
<div class="content">
   Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 
   <a href="/" target="_blank">Ссылка</a>
   Aenean commodo ligula eget dolor. Aenean massa.
</div>

При использовании следующего кода...
$('.block').click(function(){ 
	$(this).toggleClass('blur');
});
...происходит добавление/удаление класса blur при клике абсолютно в любом месте блока. Необходимо сделать так, чтобы при нажатии на эту ссылку с блоком ничего не происходило, класс не добавлялся. Как это сделать?

Спасибо!

С уважением,
Александр.
  • Вопрос задан
  • 3636 просмотров
Решения вопроса 2
thewind
@thewind
php программист, front / backend developer
$('.block').click(function(e){
if ( $(e.target).hasClass('block') )
	$(this).toggleClass('blur');
});
Ответ написан
Комментировать
Scorpi
@Scorpi
Попробуйте так:
$('.block').click(function(e) {
    if (e.target == this) 
        $(this).toggleClass('blur');
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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