Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
Uso de las teclas arriba/abajo para seleccionar el elemento de la lista JS/jQuery

Tengo una lista de elementos que se completan dinámicamente según los términos de búsqueda. Quiero que los elementos de la lista se puedan seleccionar/enfocar al usar las teclas arriba/abajo y ESC para ocultar el menú desplegable.

 <form> <div> <div class="field"> <input type="text" id="dropdown_input" name="query"> </div> <!-- dropdown_results inserted into DOM dynamically from search query --> <div id="dropdown_results"> <ul id="dropdown_results_ul"> <li> <a href="/example1">example1</a> </li> <li> <a href="/example2">example2</a> </li> <li> <a href="/example3">example3</a> </li> </ul> </div> </div> </form> <script> if (e.keyCode == 40) { jQuery("a:focus").parent().next().find("a").focus(); } if (e.keyCode == 38) { jQuery("a:focus").parent().prev().find("a").focus(); } </script>

Idealmente, me gustaría hacer esto usando Bootstrap5, ya que tiene compatibilidad nativa arriba/abajo/ESC para menús desplegables de botones, pero no sé cómo usarlo con elementos li cuando el padre ul se inserta en el DOM.

Ejemplo de JSFiddle: https://jsfiddle.net/eupy9Lsc/1/

Ejemplo de Bootstrap de JSFiddle: https://jsfiddle.net/jr52tomd/

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Su javascript no está escuchando ningún evento clave. Puedes resolver esto con algo como...

 jQuery(document).on('keydown', function(e) { if (e.keyCode == 40) { jQuery("a:focus").parent().next().find("a").focus(); } if (e.keyCode == 38) { jQuery("a:focus").parent().prev().find("a").focus(); } });
about 4 years ago · Juan Pablo Isaza Denunciar

0

arregló esto usando 2 oyentes:

 jQuery("#dropdown_input").on('keydown', function(e) { if (e.keyCode == 40) { jQuery("#dropdown_results").find('a:first').focus(); } }); jQuery("#dropdown_results").on('keydown', function(e) { if (e.keyCode == 40) { jQuery("a:focus").parent().next().find("a").focus(); } if (e.keyCode == 38) { jQuery("a:focus").parent().prev().find("a").focus(); } });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda