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

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

  • Вопрос задан
  • 121 просмотр
Решения вопроса 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();
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы