addEventListener
イベント・リスナーの登録やイベント発生時の処理を設定する(Firefox)
構文 |
|
要素.addEventListener( "イベント・タイプ", 処理,ユーザー・キャプチャ ) [メソッド] |
イベントタイプ |
|
リスニングするイベント・タイプ |
|
|
説明
- 指定したイベント・ターゲットに対し,取得するイベント・タイプや処理などの設定を行うメソッド。イベント・ターゲットは,ドキュメント上の各ノード,ドキュメント自身,ウインドウあるいはXMLHttpRequestなどとなる。HTML要素内に設定したイベント・ハンドラは,DOMのツリー構造に沿って参照される。
- しかし 「addEventListener」メソッドで設定したイベントは,DOMのツリー構造に関係なく,直接参照される。
- 「addEventListener」メソッドに設定する値のうち,「イベントタイプ」は取得できるようにするイベントのタイプを,「処理」はイベントが発生した時に呼ばれるユーザーが設定したスクリプトや関数などの処理を,「ユーザー・キャプチャ 」は,ユーザーがイベントの取得を開始するかどうかを,「true」か「false」でそれぞれ設定する。「addEventListener」メソッドは,W3C DOMで仕様化されたイベント・リスナーを登録するための方法となる。イベント・ハンドラと比べて「addEventListener」メソッドには,1つのイベントに対し複数のハンドラを追加できる,イベント・リスナーが活性化されたとき,その動きを細かくコントロールできるHTML要素だけでなく,任意のDOM要素で動作させることができるなどの利点がある。
- 用例では,id名「p1」のp要素に対し,クリックのイベントをリスニングし,イベント取得時には,関数「MyFunc」を発生するようにしている。関数「MyFunc」の処理では,id名「IMG」のimg要素のsrc属性に値を設定することにより,画像の置き換えを行っている。
- Opera,Safari,Chromeも対応している。Internet Explorerでは未対応。Internet Explorerには,同等の機能を持つ「attachEvent」メソッドがある。
用例
「addEventListener」メソッドを使って,id名「p1」を設定したp要素で「click」イベントが発生した時,関数「MyFunc」の処理を実行するよう設定を行う。
<html> <head>
<mata http-equiv="Content-Script-Type" content="text/javascript">
<mata http-equiv="Content-Style-Type" content="text/css">
<title>addEventListener</title>
<script type="text/javascript">
<!--
function MyFunc() {
document.getElementById("IMG").src = "image2.jpg";
}
function load() {
el = document.getElementById("p1");
el.addEventListener("click", MyFunc, true);
}
// -->
</script>
<style type="text/css">
<!--
body { background-color: #ffffff }
#p1 { background-color: pink; width:150 }
-->
</style>
</head>
<body onload="load()">
*イベント・リスナーの登録やイベント発生時の処理を設定する(Firefox)
<p>
<img src="image1.jpg" id="IMG" width="100" height="100"
alt="addEventListener">
</p>
<p id="p1">
ここをクリックすると上の画像が変わります
</p>
</body> </html>
この用例を実行する