Как закрыть ввод при нажатии на документ в ванильном javascript

#javascript #html

#javascript #HTML

Вопрос:

Я создал ввод с помощью кнопки, которая, когда я нажимаю на кнопку, показывает и удаляет ввод. Но я также хочу удалить ввод при нажатии на DOM, и я знаю, что должен установить addEventListeners значение DOM. Но я не знаю, какую функцию мне следует использовать.

введите описание изображения здесь

введите описание изображения здесь

 //Html
<div class="search">
  <input type="text" class="input" placeholder="Search . . ." />
  <button class="btn">
    <i class="fas fa-search"></i>
  </button>
</div>

//Js
const searchSection = document.querySelector(".search");
const input = document.querySelector(".input");
const searchBtn = document.querySelector(".btn");

searchBtn.addEventListener("click", () => {
 searchSection.classList.toggle("active");
 input.focus();
}); 
 

Ответ №1:

Ванильный JS-способ прослушивания событий щелчка — это прослушивание всех щелчков по документу, а затем проверка, есть ли у выбранного элемента нужный вам селектор.

 document.addEventListener('click', function (event) {

    // If the clicked element doesn't have the right selector, bail
    if (!event.target.matches('.click-me')) return;

    // Don't follow the link
    event.preventDefault();

    // Log the clicked element in the console
    console.log(event.target);

}, false);
 

Этот подход называется делегированием событий, и он работает, используя преимущества того, что называется «пузырьковое событие».

Вы можете прочитать больше о прослушивании событий щелчка с помощью ванильного JavaScript