(旧) kano-e no memo

こっちは更新してません

jquery.hotkeys.jsでテンキーの入力を捕捉する

テンキーというか、正確には、NumLock+テンキーの入力を捕捉。

とりあえず、jquery.hotkeys.jsの中見たら、

    this.special_keys = { 
        27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll', 20: 'capslock',
        144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',35:'end', 33: 'pageup',
        34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down', 112:'f1',113:'f2', 114:'f3',
        115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8', 120:'f9', 121:'f10', 122:'f11', 123:'f12'};

って部分があって、テンキーのキーコードをここに追加して、名前をつければ動きそうな感じ。

keyCode の変 (groundwalker.com)で見付けたkeyCode Checkerを使ってテンキーのキーコードを確認。
NumLock+数字キーは、0から9が96から105に対応してる。
NumLockかかってないと、矢印キーとかと同じキーコードになってる(でも、hotkeys上だと、ShiftとかCtrlと同時押しした時の挙動が違う)。

最終的には、

    <script type="text/javascript" src="/site_static/javascript/jquery.js"></script>
    <script type="text/javascript" src="/site_static/javascript/jquery.hotkeys.js"></script>
    <script type="text/javascript" src="/site_static/javascript/jquery.hotkeys.special_keys.js"></script>

みたいな感じにしておいて、jquery.hotkeys.special_keys.js(名前はなんでも良いんだけど)内で、

(function (jQuery){
  this.special_keys = { 
        27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll', 20: 'capslock',
        144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',35:'end', 33: 'pageup',
        34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down', 112:'f1',113:'f2', 114:'f3',
        115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8', 120:'f9', 121:'f10', 122:'f11', 123:'f12',
        96:'t0', 97:'t1', 98:'t2', 99:'t3', 100:'t4', 101:'t5', 102:'t6', 103:'t7', 104:'t8', 105:'t9'};
  jQuery.hotkeys.special_keys = this.special_keys;
  return jQuery;
})(jQuery);

にしたら、テンキーの入力も捕捉できた!

なんか、javascript不慣れなので、こういうやり方で良いのかわからず、不安なので晒してみる。