2009-07-22 9 views
11

J'ai besoin de capturer un événement de pression de tabulation sur certaines entrées dynamiques, mais la syntaxe normale utilisant l'événement keypress ne semble pas intercepter le code clé.jQuery: comment capturer la touche keypress en utilisant live()

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

Cela semble être attraper 0 comme keypress quand je passe par le débogueur dans Firebug quelle que soit la clé que je presse.

Répondre

25

Essayez avec .keyCode au lieu de .Qui:

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

semblons travailler;)

8

Essayez d'écouter pour keyup ou keydown au lieu de keypress (per this SO post)

+1

En effet. quirksmode contient également des informations sur la compatibilité des événements avec les navigateurs, et des particularités particulières du navigateur avec certaines clés. J'ai opté pour «keydown» dans mon code. –

Questions connexes