本記事では、JavaScriptのイベント設定をするイベントリスナーとイベントハンドラの違いについてサンプルコードを用いて分かりやすく解説しています。
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
イベントリスナーとは
イベントリスナーとは、JavaScriptでイベントを使う方法の一つで、addEventListenerメソッドの第一引数にイベントを指定し、第二引数に関数を指定し実行したい処理の内容を記述します。
イベントリスナーの使い方は以下の通りです。
const elem = document.getElementById('HTML要素'); // トリガーになる要素を取得
elem.addEventListener('イベント',function(){
// 処理内容を記述
})
イベントハンドラとは
イベントハンドラとは、JavaScriptでイベントを使うもう一つの方法で、イベントを設定したい要素に対して.onイベント名()プロパティを使用して関数を代入し実行したい処理の内容を記述します。
イベントハンドラの使い方は以下の通りです。
const elem = document.getElementById('HTML要素'); // トリガーになる要素を取得
elem.イベント() = function(){
// 処理内容を記述
};
イベントリスナーとイベントハンドラの違い
イベントを設定する2種類の書き方について理解できたのですが、2つの違いはあるんですか?
大きな違いとしてイベントを複数登録できるか、できないかの違いがあるよ!
これについて詳しく解説するね!
上記サンプルの、イベントリスナーと書かれたボタンをクリックすると、新しく「1つ目のイベント処理」「2つ目のイベント処理」の2つのテキストが生成されます。しかし、イベントハンドラと書かれたボタンをクリックして、生成されるテキストは「2つ目のイベント処理」のみで「1つ目のイベント処理」が表示されません。
このように、イベントリスナーを使って複数のイベントを登録した場合、登録したイベントの処理分を実行してくれますが、イベントハンドラで複数のイベントを登録すると最初に登録したイベントは後に登録したイベントに上書きされてしまいます。
イベントリスナーとイベントハンドラは、イベントを登録するという用途は同じですがこのような違いがあります。
イベントリスナーとイベントハンドラはどちらを使うべき?
イベントリスナーとイベントハンドラどちらを使うべきかは、ユースケースによって完全に異なりますが一般的にはイベントリスナーのaddEventListenerメソッドを使うことが一般的です。
まとめ
今回はJavaScriptのイベントリスナーとイベントハンドラの違いについて解説しました。最後にポイントを軽くおさらいしましょう。
- イベントリスナーでは複数のイベントを登録することができるが、イベントハンドラでは最後に登録されたイベントのみが実行される