I have some code that opens and closes a window. This window has a search bar (input) that gets focus when the window is opened. Closing by pressing Esc only works when the focus is on the input. When there is no focus, Esc does not work. Why?
const btn = document.querySelector('.header-left__search-btn'),
body = document.body,
search = document.querySelector('.search'),
searchInput = document.querySelector('#search__input'),
btnClose = document.querySelector('.search__closed-icon');
function searchOpen() {
btn.addEventListener('click', () => {
body.classList.add('is-search-open');
setTimeout(() => {
searchInput.focus();
}, 300);
if (body.classList.contains('is-head-open')) {
body.classList.remove('is-head-open');
}
});
search.addEventListener('keydown', (e) => {
if(e.code === "Escape" && body.classList.contains('is-search-open')) {
body.classList.remove('is-search-open');
}
});
btnClose.addEventListener('click', function () {
body.classList.remove('is-search-open');
});
}
searchOpen();