1. ホーム
  2. javascript

[解決済み] JS/jQueryでの矢印キーのバインディング

2022-03-23 08:23:28

質問

JavascriptやjQueryで、左右の矢印キーに関数をバインドするにはどうしたらよいでしょうか?jQueryのjs-hotkeyプラグイン(特定のキーを認識する引数を追加するために組み込みのバインド関数をラップする)を見てみましたが、矢印キーはサポートしていないようです。

どのように解決するのですか?

document.onkeydown = function(e) {
    switch(e.which) {
        case 37: // left
        break;

        case 38: // up
        break;

        case 39: // right
        break;

        case 40: // down
        break;

        default: return; // exit this handler for other keys
    }
    e.preventDefault(); // prevent the default action (scroll / move caret)
};

IE8 に対応する必要がある場合は、関数本体の先頭を e = e || window.event; switch(e.which || e.keyCode) { .


(2020年編集)
注意事項 KeyboardEvent.which は現在では非推奨となっています。参照 この例では KeyboardEvent.key を使えば、より現代的な方法で矢印キーを検出することができます。