Задать вопрос

Как закрыть элемент, если клик был вне его?

Кликаю по input появляется окно, далее кликаю вне этого окна, но окно не закрывается, почему?
По идее должно было сработать это: parent_element.contains(event.target)

  • Вопрос задан
  • 125 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Слушатель клика весит на el_table, то есть клик будет пойман только на нем или его детях. Из этого можно сделать простой вывод, чтоel_table.contains(e.target)всегда вернет true, а следовательно мы никогда не попадем в такой if

UPD:
Ответ написан
@LJ322
Повесьте обработчик на всю страницу, чтобы можно было ловить события кликов по всем её элементам
function win(){
  document.body.append(el_table);
  document.addEventListener('click', closes);
}

А функцию закрытия можно оформить следующим образом, чтобы проверять на какой конкретно элемент пришлось событие:
function closes(e){
  console.log(e.target);
  if (e.target != parent && el_table) {  
    el_table.remove();
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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