https://idea-hack.com/courses/lets-understand-various-events-that-are-used-to-implement-processing-according-to-the-users-operation-in-javascript/lessons/how-to-use-removeeventlistener-method-to-delete-the-event-listener-that-has-been-set-once-in-javascript/
https://idea-hack.com/courses/lets-understand-various-events-that-are-used-to-implement-processing-according-to-the-users-operation-in-javascript/lessons/how-to-use-removeeventlistener-method-to-delete-the-event-listener-that-has-been-set-once-in-javascript/

JavaScriptで一度設定した「イベントリスナー」を削除するremoveEventListener()メソッドの使い方

イベントリスナーの削除を行うremoveEventListener()メソッド

removeEventListener()メソッドを使うと、一度定義したイベントリスナーを削除できます。

注意点が2つあり・・・

  • 関数名を指定する(アロー関数は不可)
  • addEventListener()メソッドの引数(オプション含めて)同じ引数を指定する

これらの条件を満たさないと削除されません。

メソッド

メソッド意味
イベントターゲット.removeEventListener(イベント名,リスナー,[オプション])イベントリスナーの削除

サンプルコード

Output

ページ読み込みご5秒以内しか機能しないアラート

Pug
p ページ読み込みご5秒以内しか機能しないアラート
 button#button.mb-4 Button
SCSS
#button {
	--background-color: #fff;
	--color: #576574;
	--transition: all 0.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 targetEvent = document.getElementById('button');
// ボタンをクリックしたら予め用意していたonClickAction()関数を実行する
const onClickOption = {
	capture: true,
	once: false,
	passive: true
};
targetEvent.addEventListener('click', onClickAction, onClickOption);

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

/*しかし、ページ読み込みから5秒後以降はアラートを表示できない*/
setTimeout(() => {
	targetEvent.removeEventListener('click', onClickAction, onClickOption);
}, 5000);
インストラクター
コメント

コメントを残す