jQuery入門 | イベント処理 | イベントメソッド .click() .hover() .keypress() .focusin()
イベントメソッド
jQueryは.on()メソッド以外にも、JavaScriptイベントに関するさまざまなメソッドを提供している。
これらのイベントメソッドは、イベントが発生する要素に応じて次のように分類できる。
- マウスイベントに関するメソッド
- キーボードイベントに関するメソッド
- 入力フォームイベントに関するメソッド
マウスイベントに関するメソッド
jQueryが提供するマウスイベントに関するメソッドは次のとおりである。
| メソッド | 説明 |
|---|---|
| .click() | JavaScriptの"click"イベントをイベントハンドラーに関連付け、対象要素で"click"イベントが発生したときに設定した関数を実行する。 |
| .dblclick() | JavaScriptの"dblclick"イベントハンドラーを関連付け、対象要素で"dblclick"イベントが発生したときに設定した関数を実行する。 |
| .hover() | JavaScriptの"mouseenter"と"mouseleave"イベントを1つのイベントハンドラーに関連付け、対象要素でそれらのイベントが発生したときに設定した関数を実行する。 |
| .mousedown() | JavaScriptの"mousedown"イベントハンドラーを関連付け、対象要素で"mousedown"イベントが発生したときに設定した関数を実行する。 |
| .mouseenter() | 対象要素の上にマウスが入ったときに発生するイベントをイベントハンドラーに関連付け、そのイベントが発生したときに設定した関数を実行する。 |
| .mouseleave() | 対象要素からマウスが出たときに発生するイベントをイベントハンドラーに関連付け、そのイベントが発生したときに設定した関数を実行する。 |
| .mousemove() | JavaScriptの"mousemove"イベントをイベントハンドラーに関連付けるか、対象要素で"mousemove"イベントが発生したときに設定した関数を実行する。 |
| .mouseout() | JavaScriptの"mouseout"イベントをイベントハンドラーに関連付け、対象要素で"mouseout"イベントが発生したときに設定した関数を実行する。 |
| .mouseover() | JavaScriptの"mouseover"イベントをイベントハンドラーに関連付け、対象要素で"mouseover"イベントが発生したときに設定した関数を実行する。 |
| .mouseup() | JavaScriptの"mouseup"イベントをイベントハンドラーに関連付け、対象要素で"mouseup"イベントが発生したときに設定した関数を実行する。 |
.click()メソッドと.dblclick()メソッド
.click()メソッドは、JavaScriptの"click"イベントをイベントハンドラーに関連付け、対象要素で"click"イベントが発生したときに設定した関数を実行する。
.dblclick()メソッドは、JavaScriptの"dblclick"イベントをイベントハンドラーに関連付け、対象要素で"dblclick"イベントが発生したときに設定した関数を実行する。
次の例は、ボタンがクリックまたはダブルクリックされたときに状態を表示する例である。
$("button").click(function() {
$("div").text("クリックされました。");
});
$("button").dblclick(function() {
$("div").text("ダブルクリックされました。");
});
.hover()メソッド
.hover()メソッドは、JavaScriptの"mouseenter"と"mouseleave"イベントを1つのイベントハンドラーに関連付け、対象要素でそれらのイベントが発生したときに設定した関数を実行する。
次の例は、ボタンにマウスが乗ったとき、またはボタンから出たときに状態を表示する例である。
$("button").hover(function() {
$("#text").text("マウスが入りました。");
}, function(){
$("#text").text("マウスが出ました。");
});
設定した関数が2つある場合、1つ目の関数は"mouseenter"イベントが発生したときに実行され、2つ目の関数は"mouseleave"イベントが発生したときに実行される。
設定した関数が1つだけの場合は、“mouseenter"イベントまたは"mouseleave"イベントのどちらかが発生したときに、その1つの関数が実行される。
キーボードイベントに関するメソッド
| メソッド | 説明 |
|---|---|
| .keydown() | JavaScriptの"keydown"イベントをイベントハンドラーに関連付け、対象要素で"keydown"イベントが発生したときに設定した関数を実行する。 |
| .keyup() | JavaScriptの"keyup"イベントをイベントハンドラーに関連付け、対象要素で"keyup"イベントが発生したときに設定した関数を実行する。 |
| .keypress() | JavaScriptの"keypress"イベントをイベントハンドラーに関連付けるか、対象要素で"keypress"イベントが発生したときに設定した関数を実行する。 |
.keypress()メソッド
.keypress()メソッドは、JavaScriptの"keypress"イベントをイベントハンドラーに関連付け、対象要素で"keypress"イベントが発生したときに設定した関数を実行する。
次の例は、<input>要素にキーボードで文字を入力するたびにカウントして表示する例である。
var i = 0;
$("input").keypress(function() {
$("#text").text((++i) + "回キーが押されました。");
});
Shift、Esc、Deleteのように画面に表示されないキー(modifier and non-printing keys)は、“keydown"イベントを発生させるが、“keypress"イベントは発生させない。
入力フォームイベントに関するメソッド
| メソッド | 説明 |
|---|---|
| .blur() | JavaScriptの"blur"イベントをイベントハンドラーに関連付け、対象要素で"blur"イベントを発生させる。 |
| .change() | JavaScriptの"change"イベントをイベントハンドラーに関連付け、対象要素で"change"イベントが発生したときに設定した関数を実行する。 |
| .select() | JavaScriptの"select"イベントをイベントハンドラーに関連付け、対象要素で"select"イベントが発生したときに設定した関数を実行する。 |
| .submit() | JavaScriptの"submit"イベントをイベントハンドラーに関連付け、対象要素で"submit"イベントが発生したときに設定した関数を実行する。 |
| .focus() | JavaScriptの"focus"イベントをイベントハンドラーに関連付け、対象要素で"focus"イベントが発生したときに設定した関数を実行する。 |
| .focusin() | “focusin"イベントをイベントハンドラーに関連付け、対象要素で"focusin"イベントが発生したときに設定した関数を実行する。 |
| .focusout() | “focusout"イベントをイベントハンドラーに関連付けるか、対象要素で"focusout"イベントが発生したときに設定した関数を実行する。 |
.focusin()メソッドと.focusout()メソッド
.focusin()メソッドは、“focusin"イベントをイベントハンドラーに関連付け、対象要素で"focusin"イベントが発生したときに設定した関数を実行する。
.focusout()メソッドは、“focusout"イベントをイベントハンドラーに関連付けるか、対象要素で"focusout"イベントが発生したときに設定した関数を実行する。
$("input").focusin(function() {
$(this).css("background-color", "yellow");
});
$("input").focusout(function() {
$(this).css("background-color", "white");
});
thisキーワードは、現在選択されている要素そのものを指す。
参照
- https://api.jquery.com/click/
- https://api.jquery.com/dblclick/
- https://api.jquery.com/hover/
- https://api.jquery.com/keypress/
- https://api.jquery.com/focusout/
- https://api.jquery.com/focusin/