@Richswitch
junior

Почему на вложенных элементах в div не работает e.target?

Привет!
Есть ссылка на codepan.
Здесь есть блок .box в котором есть дургие блоки.
Хочу сделать так, что при нажатии на блок .box и все что внутри него НЕ выдавало строку в консоль с помощью такой проверки:
function func(e) {
   if(e.target !== box) {
     console.log('click target !== box');
   }
};

Но как видно из примера по ссылке нажать можно на блоки внутри .box также как и на блок .box-container и только при нажатии на границы блока .box и оставшегося пространства внизу блока код работает корректно.
Что нужно добавить в проверку?
PS Пожалуйста, не пишите код на jQuery
  • Вопрос задан
  • 189 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED
if (box === e.target) {
     console.log('клик по box');
   } else if(box.contains(e.target)) {
     console.log('клик по дочернему элементу');
   }

https://codepen.io/anon/pen/MEBGYP?editors=1111
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Можно пройтись по родительским элементам и убедиться, что среди них нет вашего .box. Типа так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
function func(e) {
   console.log(e.target);
   console.log(box);
   if(e.target !== box) {
     console.log('click target !== box');
   }
};
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
XPOWER Одесса
от 3 000 до 5 500 $
Artezio Москва
от 160 000 до 220 000 ₽