言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

JavaScript辞典

  1. トップページ
  2. JavaScript辞典
  3. HTML要素.addEventListener()

HTML要素.addEventListener() 対応: DOM Level 2(2000)

HTML要素にイベントリスナーを登録し、指定したイベントが発生した際に実行される関数を設定します。

構文

element.addEventListener("イベント名", 関数);

// オプション付き
element.addEventListener("イベント名", 関数, オプション);

引数

引数概要
イベント名監視するイベントの名前を文字列で指定します。『click』『input』『submit』『keydown』『scroll』『load』などがあります。『on』は付けません。
関数イベント発生時に実行されるコールバック関数を指定します。引数としてイベントオブジェクトが渡されます。
オプション省略可能です。『{ once: true }』を指定すると、イベントが1回だけ実行されて自動的に解除されます。

主なイベント一覧

イベント概要
clickHTML要素がクリックされた時に発生します。
inputテキストフィールドの値が変更された時に発生します。入力のたびに即座に発生します。
changeフォーム要素の値が確定された時に発生します。テキストフィールドではフォーカスが外れた時に発生します。
submitフォームが送信された時に発生します。
keydownキーが押された時に発生します。
keyupキーが離された時に発生します。
mouseoverマウスがHTML要素の上に乗った時に発生します。
mouseoutマウスがHTML要素から離れた時に発生します。
scrollスクロールされた時に発生します。
loadページや画像の読み込みが完了した時に発生します。

サンプルコード

<button id="btn">クリック</button>
<input id="name" type="text" placeholder="名前を入力">
<p id="output"></p>
// クリックイベント
var btn = document.querySelector("#btn");
btn.addEventListener("click", function() {
	alert("ボタンがクリックされました!");
});

// 入力のたびにリアルタイムに反映されるイベントです。
var input = document.querySelector("#name");
var output = document.querySelector("#output");
input.addEventListener("input", function(e) {
	output.textContent = "こんにちは、" + e.target.value + "さん!";
});

// 1回だけ実行されるイベントです。
btn.addEventListener("click", function() {
	console.log("これは1回しか表示されません");
}, { once: true });

概要

『HTML要素.addEventListener()』はイベント駆動プログラミングの基本となるメソッドです。ユーザーの操作(クリック、入力、スクロールなど)やブラウザのイベント(読み込み完了など)を監視し、発生時に任意の処理を実行できます。

コールバック関数にはイベントオブジェクトが引数として渡され、このオブジェクトには『target』(イベント発生元のHTML要素)や『preventDefault()』(デフォルト動作の抑止)などの便利なプロパティやメソッドが含まれています。

同じHTML要素に同じイベントで複数のリスナーを登録することも可能です。古い書き方である『HTML要素.onclick = function() {}』はリスナーが1つしか登録できないため、『HTML要素.addEventListener()』の使用をおすすめします。

登録したリスナーを解除する場合は『removeEventListener()』を使用します。ただし、解除するにはリスナー登録時と同じ関数の参照が必要なため、無名関数で登録したリスナーは解除できません。解除が必要な場合は名前付き関数を使用してください。

『HTML要素.addEventListener()』はチュートリアル記事『イベント処理(1)』『イベント処理(2)』で、より詳しく解説しています。良ければご覧下さい。

対応ブラウザ

Chrome Chrome
49 以降
全バージョンで対応しています
Firefox Firefox
57 以降
全バージョンで対応しています
Safari Safari
18 以降
全バージョンで対応しています
Edge Edge
80 以降
11 以前 ×
IE IE
11 以降
5 以前 ×
Opera Opera
48 以降
6 以前 ×
iOS Safari iOS Safari
18 以降
全バージョンで対応しています
Android Browser Android Browser
37 以降
全バージョンで対応しています
Chrome Android Chrome Android
36 以降
17 以前 ×
Firefox Android Firefox Android
79 以降
3 以前 ×

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。