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不慣れなので、こういうやり方で良いのかわからず、不安なので晒してみる。