備忘録的プログラミングリファレンス

which プロパティ

event.which

 which プロパティは、マウスやキーボードなどのデバイスのどこを操作したかを返す MouseEventKeyboardEvent のプロパティです。

buttons プロパティ
document.addEventListener("keydown", (event) => {
	colsole.log( event.which );
});

詳しくは Example を参照してください

 which プロパティは番号を返します。

 which プロパティによって取得できる番号が同じでもマウスやキーボードといったデバイスによってその内容が変わります。
 詳しくは以下のwhich プロパティについてを参照してください。

ページ内 Index

which プロパティについて

 which プロパティは番号を返します。その値はマウスやキーボードによって番号が示すボタンやキーの内容が変わります。

MouseEventにおいては、

 主にonmousedownイベントが対象になります。押されたマウスボタンを示す番号を返します。以下のようにマウスボタンごとの番号を返します。

0
何も操作していない
1
左のマウスボタン
2
ホイールボタン(ホイールボタンがあれば)
3
右のマウスボタン

 左利き用のマウスでは左右が反対になります。

 似たプロパティにevent.buttonプロパティがあります。

KeyboardEventにおいて

 whichとkeyCodeプロパティは互換性のために提供されていますが、使用できるならばkeyプロパティが推奨されています。

onkeypressイベントではUnicode文字コードを、onkeydownonkeyupイベントではUnicodeキーコードを返します。

 文字コードとキーコードには以下のような違いがあります。

文字コード
ASCII文字コード
キーコード
キーボードの実際のキー番号

 FireFoxブラウザではonkeypressイベントでのkeyCodeプロパティは機能しません。which プロパティを使います。  クロスブラウザにするには、以下のようにwhichとkeyCodeを併用するようにしましょう。

	var font_code = event.which || event.keyCode;
	

「ALT」、「CTRL」、「META」、「SHIFT」キーが押されたかを知るにはaltKeyctrlKeymetaKeyshiftKeyプロパティを使用します。

構文(Syntax)

返り値はNumber型で、読み取り専用です。

Number = event.which;

返り値(Return Values)

Type摘要
NumberMouseEventではマウスの番号、KeyboardEventでは文字コードまたはキーコードを返す

Example

 which プロパティの例です。

 which プロパティによって取得できる番号が同じでもマウスやキーボードといったデバイスによってその内容が変わります。

確認ボタンをクリックしてください。以下のHTML,CSS,Scriptコード例が実行されます。