2009-07-22 14 views
11

È necessario acquisire un evento di pressione tasto tab su alcuni input dinamici, ma la sintassi normale che utilizza l'evento keypress non sembra catturare il codice chiave.jQuery: come acquisire il tasto di scelta rapida utilizzando live()

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

Questo sembra essere la cattura 0 come la pressione del tasto quando vado attraverso il debugger in Firebug, non importa quale tasto si preme.

risposta

25

provare con .keyCode invece di .which:

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

sembrano funzionare;)

8

Provate ad ascoltare per keyup o keydown invece di keypress (per this SO post)

+1

Infatti. Quirksmode ha anche informazioni sulla compatibilità del browser degli eventi, e particolari stranezze del browser con determinate chiavi. Ho optato per 'keydown' nel mio codice. –

Problemi correlati