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

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

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

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

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

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