JavaScriptで「イベント」に処理を追加するaddEventListener()メソッドの使い方を覚えよう

既に、addEventListener()メソッドについては紹介していますが、実はこのメソッドは奥が深いので改めて詳細を説明します。

JavaScriptのaddEventListener()メソッドとは

addEventListener()メソッドは「イベント」を指定して、そのイベントに処理を追加するための物です。

「イベント」に処理(関数)を実装するのにかなたず利用する物なので、絶対に必要な知識になります。

メソッド

メソッド意味
イベントターゲット.addEventListener(イベント名c,リスナー.[オプション])イベントリスナーの設定(イベントへの処理の追加)

サンプルコード

サンプルコードとしてボタンに対してアラートダイアログボックスを実装したものを紹介しています。

<button>タグのをイベントターゲットに指定して、click「イベント」に対してonClickAction関数を追加しています。

Output
Pug
 button#button.mb-4 Button
 div#pushalert
SCSS
#button {
	--background-color: #fff;
  --color: #576574;
	--transition: all .3s;
	margin-bottom: 10px;
  background-color: var(--background-color);
  padding: 10px;
  color: var(--color);
	border: 1px solid #576574;
  cursor: pointer;
  width: 120px;
	transition:  var(--transition);
	&:hover {
		transition: var(--transition);
		color: var(--background-color);
		background-color: var(--color);
	}
}
JavaScript
const pushAlert = document.getElementById('pushalert');

// ボタンをクリックしたら予め用意していたonClickAction()関数を実行する
document.getElementById('button').addEventListener('click', onClickAction);

/** ボタンをクリックするとアラートを表示 */
function onClickAction() {
	//アラートを表示
	const dateInstance = new Date();
	window.alert(`こんにちは!今日の日付は${dateInstance.getFullYear()}年${dateInstance.getMonth() + 1}月${dateInstance.getDate()}日です。`);
}

これは<button>を押したタイミングでアラートダイアログボックスを表示するスクリプトです。

イベントターゲットとは?

<button>要素にはクリップ・タップなど様々なイベントが発生します。この様なイベントを発生させるオブジェクトのことを「イベントターゲット」と良います。<button>タグもそうですが、他に<a>タグ・window<div>タグ・<p>タグなどもイベントターゲットです。

イベントターゲットはdocument.getElementById('button')などの様にID属性を指定して取得することが一般的です。

イベントリスナーとは?

メソッド意味
イベントターゲット.addEventListener(イベント名c,リスナー.[オプション])イベントリスナーの設定(イベントへの処理の追加)

このサンプルでは、clickイベントに対して処理を行いました。

addEventListener('click', onClickAction);の部分がそれに該当します。

また、この時に実行される処理のことを「イベントリスナー」と良います。

このサンプルでの「イベントリスナー」は関数onClickActionです。

全体を説明

まとめると、document.getElementById('button').addEventListener('click', onClickAction);というコードは「ID属性buttonがついた要素のイベントclickに対して、イベントリスナーonClickActionを追加」しているのです。

インストラクター
コメント

コメントを残す