596 votes

Détection des touches fléchées en JavaScript

Comment j’ai détecter quand vous appuyez sur une des touches de direction ? J’ai utilisé cela pour découvrir :

Si elle a travaillé pour toutes les autres clés, il n’a pas de touches fléchées (peut-être parce que le navigateur est censé naturellement pour faire défiler sur ces entrées).

915voto

zyklus Points 31683

touches fléchées sont déclenchés uniquement par , pas

codes de touches sont :

  • gauche = 37
  • up = 38
  • droite = 39
  • Bas = 40

291voto

ketan Points 733

Sur la touche haut et bas de la fonction d’appel. Il y a des codes différents pour chaque clé.

102voto

1'' Points 5044

Éventuellement le tersest formulation:

document.onkeydown = function(e) {
    switch (e.keyCode) {
        case 37:
            alert('left');
            break;
        case 38:
            alert('up');
            break;
        case 39:
            alert('right');
            break;
        case 40:
            alert('down');
            break;
    }
};

Démo (merci à l'utilisateur Angus Grant): http://jsfiddle.net/angusgrant/E3tE6/

Cela devrait fonctionner de la croix-navigateur. Laisser un commentaire si il y a un navigateur où il ne fonctionne pas.

Il y a d'autres façons d'obtenir le code de la touche (e.qui, de l'e.charCode, et de la fenêtre.de l'événement au lieu de e), mais ils ne devraient pas être nécessaires. Vous pouvez essayer la plupart d'entre eux à http://www.asquare.net/javascript/tests/KeyCode.html. Notez que l'événement.mot de code ne fonctionne pas avec onkeypress dans Firefox, mais il ne fonctionne pas avec le onkeydown.

22voto

Tim Down Points 124501

Utilisation , pas pour les clés non imprimables comme touches de direction :

La meilleure référence incontournable de JavaScript j’ai trouvé (battant le pantalon large quirksmode, par exemple) est ici : http://unixpapa.com/js/key.html

9voto

kennebec Points 33886
function checkArrowKeys(e){
    var arrs= ['left', 'up', 'right', 'down'], 
    key= window.event? event.keyCode: e.keyCode;
    if(key && key>36 && key<41) alert(arrs[key-37]);
}
document.onkeydown= checkArrowKeys;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X