Как определить клик НЕ по кнопке?

Есть div1, при клике по которому выходит алерт, внутри div1 есть div2, при клике по которому алерт выходить не должен, как записать это условие?
$(document).on('click', 'div1', function() {
//Вот тут надо написать, что "если клик был не по элементу div2"
alert('Ku');
})
  • Вопрос задан
  • 224 просмотра
Решения вопроса 1
qork
@qork
{ background: #F00B42 }
$(document).on('click', '.div1', function(e) {
   if(!$(e.target).is('.div2'))
      alert('Ku');
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@zenwarr
В обработчик события передается аргумент — объект события, у которого есть поле target, которое указывает на элемент, который его "породил". Нужно проверить, что e.target не совпадает с элементом div2.
Ответ написан
Комментировать
streetflush
@streetflush
$( ".div1" ).click(function( event ) {
alert('test');
});
$( ".div2" ).click(function( event ) {
  event.stopImmediatePropagation();
});


или

$( ".div1" ).click(function( event ) {
if(event.target.className == "div1"){
	alert('test');
}
});
Ответ написан
Комментировать
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
$(".div1").on("click", ":not(.div2)", function(){..});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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