2009-07-22 17 views
11

Necesito capturar un evento de pulsación de tecla en algunas entradas dinámicas, pero la sintaxis normal utilizando el evento de pulsación de tecla no parece captar el código de tecla.jQuery: cómo capturar la tecla presionando live()

$('input').live('keypress', function (e) { 
    if (e.which == 9) 
     alert('Tab pressed'); 
}); 

Ésta parece ser la captura de 0 como el pulsación de tecla cuando paso por el depurador en Firebug no importa qué tecla se presiona.

Respuesta

25

intentarlo con .keyCode en lugar de .which:

$('input').live('keypress', function (e) { 
    if (e.keyCode == 9){ 
     alert('Tab pressed'); 
    } 
}); 

parecen funcionar;)

8

Trate de escuchar para keyup o keydown en lugar de keypress (per this SO post)

+1

hecho. quirksmode también tiene información sobre la compatibilidad de los eventos con los navegadores y algunas peculiaridades del navegador con ciertas claves. Opté por 'keydown' en mi código. –