Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JavaScriptでキーボード操作によるイベントハンドラ

Posted at

はじめに

こんにちはプログラマー2年目の塚田と申します。
今回はJavaScriptでキーボード操作によるイベントハンドラについて触れる機会があったので記事にしてみます。

キーイベントについて

JavaScriptで使えるキーイベントは主に以下のような種類があります。
・keydown -> キーが押されたとき
・keyup  -> キーを話したとき
・keypress -> 文字を入力可能なキーを押したとき

文字列指定によるハンドリング

event.keyプロパティを使用することでキーそのものの文字列を指定することができます。
以下の例は"Enterキー"を押したときに発火するイベントです。
まずEventListenerを使い、特定のキー押下時のイベントをキャッチします。その中にif分でevent.keyプロパティから"Enter"を指定し、押された時の処理を記述します。

document.addEventLister('keydown',function(event){
    if(event.key === 'Enter'){
        //ここに処理を記述する
    }
})

このように記述することで文字列指定によるハンドリングが可能となります。

キーコードを利用するハンドリング

こちらは上記のやり方とは違い、キーコードを使用してのハンドリングになります。
キーコードとはキーボードの各キーに割り当てられた数値の事です。
この数値を指定することで特定のキーのハンドリングが可能となります。
同じように"Enterキー"を押したときに発火するイベントを拾います。

document.addEventLister('keydown',function(event){
    if(event.keyCode === 13){
        //ここに処理を記述する
    }
})

書き方はほぼ文字列指定と変わりありませんが、
今回はevent.keyCodeプロパティを使用しています。
event.keyCode === 13  -> このように記述することで、
キーコード13の"Enterキー"を指定することが可能になります。

おわりに

今回は「JavaScriptでキーボード操作によるイベントハンドラ」についてでした。皆さんも触る機会がありましたら是非参考にしていただけると幸いです。

以上、塚田でした。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Comments

dgcdsbsd2
@dgcdsbsd2

今回はevent.keyCodeプロパティを使用しています。
event.keyCode === 13  -> このように記述することで、
キーコード13の"Enterキー"を指定することが可能になります。

KeyboardEvent.keyCodeは非推奨です。
https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent/keyCode

0

Let's comment your feelings that are more than good

Qiita Conference 2024 Autumn will be held!: 11/14(Thu) - 11/15(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

Takahiro Anno, Masaki Fujimoto, Yukihiro Matsumoto(Matz), Shusaku Uesugi / Nicolas Ishihara(Vercel Inc.)

View event details

Being held Article posting campaign

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address