jQueryでキーボードの入力と合わせて入力されたキーを取得するあれこれ

PR

jQueryをつかって、キーボードでの操作で判定を行ったりするときに必要になる、キーの取得やkeydownイベントの組み合わせのあれこれとなります。

 

 

keydown、keyup、keypressイベントを使う

キーボード関連のイベントのとなる、keydown keyup keypress の初歩的な使い方です。

$(selector).on("keydown",function(e){
 
});

jQuery 3.0 からはイベントはonに集約されているので、このような書き方で統一してます。keydownのところをkeyupやkeypressに置き換えればそれぞれ動作します。selectorのところは対象となるところを入れてください、画面全体にするばあいは window とします。

重要なのが function(e) となっているところです、こうしないと何のキーが押されたのかを知ることが出来ません。上のコードではとりあえずキーが押されると実行されます、そこでeを使って何が押されたのかを知ることで、押されたキーによる動作を指定できるようになります。

 

押されたキーを取得する

$(selector).on("keydown",function(e){
 console.log(e.keyCode);
});

e.keyCode で押されたキーを取得することが出来ます、上のコードではコンソールログに押されたキーを出力しています、キーは数値で出力されます。

まずは、こちらのコードを作って動作させたいキーのコードを知ることが出来ます。

 

キーによって条件分岐する

$(selector).on("keydown",function(e){
 if(e.keyCode == 37) {
  console.log("右キーが押されました");
 }
});

ifを使って今入力されたキーと予め動作を指定したいキーが一致した場合に何かを実行する形になります、このコードでは十字キーの右キーが押された場合にコンソールログに「右キーがおされました」と出るようになっています。

 

ctrl+何らかのキー

$(selector).on("keydown",function(e){
 if(e.ctrlKey){
  if(e.keyCode == 37) {
   console.log("ctrlと右キーが同時に押されました");
  }
 }
});

次は複数のキーを組み合わせるときの方法です、ctrlキーにも番号が存在しますが  e.ctrlKey で判定することが出来ます、ctrl+右キー で何か動作させたい場合は、まず ctrlが押されているかどうかで条件分岐してさらに指定のキーが押されているときに実行するようにすれば良いです。

上のコードでは、ctrl+右キーを押すとコンソールログに「ctrlと右キーが同時に押されました」と出るようになっています。

 

基本的な使い方は今夏感じで、例えば十字キーを使ってタブ表示の切り替えや、前後ページへの移動などを行えるようにすることが出来ます。他にはチャットなどで送信するときに Ctrl+Enter といった指定も出来てキーボードで次々に操作する方法なども作れますね。

PR

COMMENT

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー CC0 PHOTO 無料で使える高画質な写真をダウンロード、クレジット表記、リンク不要

9ineBBの最新情報をチェック・購読

Twitter Facebook Google+ Feedly RSS

どこをクリックしてもこの表示を消せます
(3日後以降に再度表示されます)