2012-05-23 12 views
14

¿Hay alguna forma de escuchar eventos de teclado en un elemento DIV?¿Cómo vincular eventos de teclado a elementos div?

Mi código:

​<div id="div" style="height:50px" class="ui-widget-content"></div> 
<input id="input">​​​​​​​​​​​​​​ 

​$('#div,#input').keyup(function(event){ 
    console.log(event.keyCode); 
});​​​​​​ 

En realidad, el código se dispara sólo para la entrada, puedo manejarlo para el div?

+0

duplicado Posible de http://stackoverflow.com/questions/148361/how-can-i-give-keyboard-focus-to-a-div-and -attach-keyboard-event-handlers-to-it/148444 # 148444 como se menciona en una de las respuestas ... –

Respuesta

28

Se puede añadir un tabindex en que div para atrapar eventos de teclado como este

<div id="div" style="height:50px" class="ui-widget-content" tabindex="0"></div> 

Como answered aquí.

Working Fiddle

Reference

+2

¡Perfecto! gracias – skafandri

+1

+1 para el enlace de referencia –

+1

¡Oh, maen, me salvaste el día! Estuve buscando unos días para encontrar una solución. ¡Muchas gracias! –

3

Añadir un tabindex y debería funcionar

<div id="div" style="height:50px;" class="ui-widget-content" tabindex="1"></div> 

DEMO

0

Por qué no colocar la entrada en el interior del div y luego simplemente encontrar $ ('# entrada ') .closest (' div ')?

De lo contrario, si su ejemplo es un patrón de cómo sus entradas se relacionan con sus divs, simplemente $ ('# input'). Prev()?

Cuestiones relacionadas