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

132
Views
Problema de usar element.addEventListen("keydown", function) sobre document.addEventListener("keydown", function)

Tengo una NodeList de números de elementos de botón. Quiero que cada uno de los elementos escuche el evento keydown en relación con su propio contenido de texto.

Cuando uso document.addEventHandlers("keydown", function ), funciona bien.

Método 1:

 document.addEventListener("keydown", (e)=>{ numbers.forEach(number=>{ if (number.textContent === e.key){ addNumber(number) }})})

Sin embargo, deja de funcionar cuando uso esto en su lugar:

Método 2:

 numbers.forEach(number=>number.addEventListener("keydown", (e)=>{ if (number.textContent === e.key){ addNumber(number); }}))

El primer método no me parece eficiente, ya que tiene que hacer una comparación con todos los elementos en números cada vez que se activa "keydown". ¿Alguien puede decirme por qué el método 2 no funciona como el método 1?

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

Si el problema es el rendimiento, puede asignar sus números en un mapa/diccionario con su contenido de texto como clave y el objeto de número como valor. Después:

 document.addEventListener("keydown", (e) => { var number = numbersByKey[e.Key]; if (number) addNumber(number); })
about 4 years ago · Santiago Gelvez Report

0

 document.addEventListener("keydown", (e)=>{ numbers.forEach(number=>{ if (number.textContent === e.key){ addNumber(number) }})})

En el código anterior, está agregando un oyente de pulsación de tecla para el documento en sí, por lo que cada vez que presiona una tecla en el teclado, este evento se activa.

 numbers.forEach(number=>number.addEventListener("keydown", (e)=>{ if (number.textContent === e.key){ addNumber(number); }}))

En este código, está agregando un oyente de pulsación de tecla al elemento individual, por lo que solo si el elemento está enfocado, el evento de pulsación de tecla se activará para ese elemento.

about 4 years ago · Santiago Gelvez 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!