みんなのちからになりたい

コピペでブログラムつくっていきたい

javascriptでキーを押した時のkeycodeを得る

webアプリでよくあるショートカットキーを実装してみたいので調べた。
keydownを取ってきてそのkeycodeを取れればいいわけなので難しくはないけどctrlとかの同時押しを取る方法がいまいちわからなかったのでぐぐった。
DOM関係はめんどいので初心者的にはぜんぶjQueryに任せる方向で。

jQueryを使ったキーイベントの取得と利用 | きほんのき

キーイベントが発生した時にctrlキーが押されている場合、event.ctrlKeyがtrueになる。同様にaltキーはevent.altKeyがtrueに、shiftキーはevent.shiftKeyがtrueとなる。

なるほど、ctrlKeyとかで取れるっぽい。
気になったのがkeycodeじゃなくwhich使ってるとこで、どれ使えばいいのかわからないのでリファレンス調べた。

event.which | jQuery API Documentation

ざっくりいうとkeycodeとcharcodeを合わせたみたいなやつってことっぽいので、jQueryだとwhitch使っておけばいいっぽい。

というわけでざっくり書いてみたらちゃんと動いた。

$(function() {
  $(document).on("keydown", function(e) {
    // alert(e.keyCode);
    $("#keycode").text(e.which);
    $("#subkey").text("ctrl:" + e.ctrlKey + " shift:" + e.shiftKey + " alt:" + e.altKey);
  });
});

勉強になる。