JSチュートリアル

JSホーム JSの紹介 JSどこへ JS出力 JSステートメント JS構文 JSコメント JS変数 JS Let JSConst JSオペレーター JS算術 JS割り当て JSデータ型 JS関数 JSオブジェクト JSイベント JS文字列 JS文字列メソッド JS文字列検索 JS文字列テンプレート JS番号 JS番号メソッド JSアレイ JS配列メソッド JS配列ソート JSアレイの反復 JSアレイ定数 JSの日付 JSの日付形式 JS DateGetメソッド JS日付設定メソッド JS数学 JSランダム JSブール値 JSの比較 JS条件 JSスイッチ JSループFor JSループフォーイン JSループの JSループWhile JSブレイク JSIterables JSセット JSマップ JS Typeof JS型変換 JSビット単位 JS RegExp JSエラー JSスコープ JSホイスト JS厳密モード JSこのキーワード JSアロー関数 JSクラス JS JSON JSデバッグ JSスタイルガイド JSのベストプラクティス JSの間違い JSパフォーマンス JS予約語

JSバージョン

JSバージョン JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE /エッジ JSの歴史

JSオブジェクト

オブジェクト定義 オブジェクトのプロパティ オブジェクトメソッド オブジェクト表示 オブジェクトアクセサー オブジェクトコンストラクター オブジェクトのプロトタイプ オブジェクト反復可能 オブジェクトセット オブジェクトマップ オブジェクトリファレンス

JS関数

関数の定義 関数パラメーター 関数の呼び出し 関数呼び出し 機能適用 関数クロージャ

JSクラス

クラスイントロ クラス継承 クラス静的

JSAsync

JSコールバック JS非同期 JSの約束 JS Async / Await

JS HTML DOM

DOMイントロ DOMメソッド DOMドキュメント DOM要素 DOM HTML DOMフォーム DOM CSS DOMアニメーション DOMイベント DOMイベントリスナー DOMナビゲーション DOMノード DOMコレクション DOMノードリスト

JSブラウザBOM

JSウィンドウ JS画面 JSロケーション JSの歴史 JSナビゲーター JSポップアップアラート JSタイミング JSクッキー

JS Web API

WebAPIイントロ WebフォームAPI Web履歴API WebストレージAPI WebワーカーAPI Web Fetch API Web Geolocation API

JS AJAX

AJAXイントロ AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

JS JSON

JSONイントロ JSON構文 JSONとXML JSONデータ型 JSON解析 JSON文字列化 JSONオブジェクト JSON配列 JSONサーバー JSON PHP JSON HTML JSON JSONP

JSとjQuery

jQueryセレクター jQuery HTML jQuery CSS jQuery DOM

JSグラフィックス

JSグラフィックス JSキャンバス JSPlotly JS Chart.js JSグーグルチャート JS D3.js

JSの例

JSの例 JS HTML DOM JSHTML入力 JSHTMLオブジェクト JSHTMLイベント JSブラウザ JSエディター JS演習 JSクイズ JS証明書

JSリファレンス

JavaScriptオブジェクト HTMLDOMオブジェクト


JavaScript HTML DOM EventListener


addEventListener()メソッド

ユーザーがボタンをクリックしたときに起動するイベントリスナーを追加します。

document.getElementById("myBtn").addEventListener("click", displayDate);

このaddEventListener()メソッドは、指定された要素にイベントハンドラーをアタッチします。

このaddEventListener()メソッドは、既存のイベントハンドラーを上書きせずに、イベントハンドラーを要素にアタッチします。

1つの要素に多くのイベントハンドラーを追加できます。

同じタイプの多くのイベントハンドラーを1つの要素、つまり2つの「クリック」イベントに追加できます。

HTML要素だけでなく、任意のDOMオブジェクトにイベントリスナーを追加できます。つまり、ウィンドウオブジェクトです。

このaddEventListener()メソッドを使用すると、イベントがバブリングにどのように反応するかを簡単に制御できます。

このメソッドを使用する場合addEventListener()、JavaScriptはHTMLマークアップから分離されているため、読みやすくなり、HTMLマークアップを制御していない場合でもイベントリスナーを追加できます。

removeEventListener()このメソッドを使用すると、イベントリスナーを簡単に削除できます。


構文

element.addEventListener(event, function, useCapture);

最初のパラメーターは、イベントのタイプです( " click"、 " mousedown"、またはその他のHTML DOMイベントなど)。

2番目のパラメーターは、イベントが発生したときに呼び出す関数です。

3番目のパラメーターは、イベントバブリングとイベントキャプチャのどちらを使用するかを指定するブール値です。このパラメーターはオプションです。

イベントには「on」プレフィックスを使用しないことに注意してください。click「 」の代わりに「」を使用しますonclick


要素にイベントハンドラーを追加する

アラート「HelloWorld!」ユーザーが要素をクリックしたとき:

element.addEventListener("click", function(){ alert("Hello World!"); });

外部の「名前付き」関数を参照することもできます。

アラート「HelloWorld!」ユーザーが要素をクリックしたとき:

element.addEventListener("click", myFunction);

function myFunction() {
  alert ("Hello World!");
}


同じ要素に多くのイベントハンドラーを追加する

このaddEventListener()メソッドを使用すると、既存のイベントを上書きすることなく、同じ要素に多くのイベントを追加できます。

element.addEventListener("click", myFunction);
element.addEventListener("click", mySecondFunction);

同じ要素に異なるタイプのイベントを追加できます。

element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);

ウィンドウオブジェクトにイベントハンドラーを追加します

このaddEventListener()メソッドを使用すると、HTML要素、HTMLドキュメント、ウィンドウオブジェクト、またはオブジェクトなどのイベントをサポートするその他のオブジェクトなど、任意のHTMLDOMオブジェクトにイベントリスナーを追加できますxmlHttpRequest

ユーザーがウィンドウのサイズを変更したときに起動するイベントリスナーを追加します。

window.addEventListener("resize", function(){
  document.getElementById("demo").innerHTML = sometext;
});

パラメータの受け渡し

パラメータ値を渡すときは、パラメータを使用して指定された関数を呼び出す「無名関数」を使用します。

element.addEventListener("click", function(){ myFunction(p1, p2); });

イベントバブリングまたはイベントキャプチャ?

HTML DOMでのイベント伝播には、バブリングとキャプチャの2つの方法があります。

イベント伝播は、イベントが発生したときの要素の順序を定義する方法です。<div>要素内に<p>要素があり、ユーザーが<p>要素をクリックした場合、どの要素の「クリック」イベントを最初に処理する必要がありますか?

バブリングでは、最も内側の要素のイベントが最初に処理され、次に外側が処理されます。<p>要素のクリックイベントが最初に処理され、次に<div>要素のクリックイベントが処理されます。

キャプチャでは、最も外側の要素のイベントが最初に処理され、次に内側が処理されます。<div>要素のクリックイベントが最初に処理され、次に<p>要素のクリックイベントが処理されます。

addEventListener()メソッドを使用すると、「useCapture」パラメーターを使用して伝播タイプを指定できます。

addEventListener(event, function, useCapture);

デフォルト値はfalseで、バブリング伝播を使用します。値がtrueに設定されている場合、イベントはキャプチャ伝播を使用します。

document.getElementById("myP").addEventListener("click", myFunction, true);
document.getElementById("myDiv").addEventListener("click", myFunction, true);

removeEventListener()メソッド

このremoveEventListener()メソッドは、addEventListener()メソッドでアタッチされているイベントハンドラーを削除します。

element.removeEventListener("mousemove", myFunction);

HTMLDOMイベントオブジェクトリファレンス

すべてのHTMLDOMイベントのリストについては、完全なHTMLDOMイベントオブジェクトリファレンスを参照してください。


エクササイズで自分をテストする

エクササイズ:

を使用して、要素eventListenerにonclickイベントを割り当てます。<button>

<button id="demo"></button>

<script>
document.getElementById("demo").("", myFunction);
</script>