Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
La entrada no se borra cuando se trabaja con e.target

No puedo entender lo que está pasando. A continuación se muestra el código JS que es responsable de cerrar y abrir el cuadro de búsqueda que se ejecuta en la aplicación JS. El cierre se produce presionando un botón con una cruz, teclado Esc y en cualquier lugar de esta ventana

 const btn = document.querySelector('.head__search-icon'), body = document.body, search = document.querySelector('.search'), searchInner = document.querySelector('.search__inner'), searchOverlay = document.querySelector('.search__overlay'), searchInput = document.querySelector('#search__input'), btnClose = document.querySelector('.search__closed-button'); body.classList.add('no-search'), search.style.display = 'none'; function searchOpen() { btn.addEventListener('click', () => { body.classList.remove('no-search'); body.classList.add('is-search'); search.style.display = 'block'; setTimeout(() => searchInput.focus(), 100); if (body.classList.contains('is-head-open')) { body.classList.remove('is-head-open'); } }); } searchOpen(); function searchClose() { body.classList.add('no-search'); body.classList.remove('is-search'); searchInput.value = ''; searchInput.blur(); } function searchRemove(e) { if(e.code === "Escape" && body.classList.contains('is-search') || e.target === searchOverlay || e.target === searchInner) { searchClose(); } } document.addEventListener('keydown', searchRemove); search.addEventListener('click', searchRemove); btnClose.addEventListener('click', searchClose);

El hecho es que si hay un resultado de búsqueda y presiona Esc, entonces todo funciona, el enfoque de la entrada desaparece y la entrada en sí se borra. Pero si hace clic en cualquier parte de la ventana ( e.target === searchOverlay || e.target === searchInner ), la ventana se cierra, la entrada se borra, como necesito, excepto que con una entrada visualmente limpia, los resultados de la búsqueda permanecen. Es decir, vuelves a abrir la ventana y ves los mismos resultados de búsqueda, aunque la entrada está vacía. Cuando se trabaja con Esc, la entrada se borra. ¿Dónde está la jamba en el guión?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En general, lo hice más fácil, agregué una construcción a la función searchClose() para eliminar el resultado de la búsqueda usando innerHTML = ' '

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!