ホームページ > 記事 > ウェブフロントエンド > JavaScriptでのaddEventListenerの使い方の詳しい説明
addEventListener は、イベント処理プログラムを登録するために使用されます。IE では、attachEvent ではなく addEventListener について説明するのはなぜですか?第一に、attachEvent は比較的単純であり、第二に、addEventListener は DOM の標準コンテンツです。今回はJavaScriptにおけるaddEventListenerの使い方を詳しく解説していきます!
(p は js の前に配置する必要があることに注意してください)
一般に、同じイベントを dom オブジェクトにバインドすると、最後のイベントのみが有効になります。例:
コードは次のとおりです。次のようになります:
document.getElementById("btn").onclick = method1; document.getElementById("btn").onclick = method2; document.getElementById("btn").onclick = method3;
その場合、method3 のみが有効になります。
Mozilla シリーズの場合は、addEventListener を使用して複数のイベントを順番に実装します。例:
コードは次のとおりです:
var btn1Obj = document.getElementById("btn1"); //element.addEventListener(type,listener,useCapture); btn1Obj.addEventListener("click",method1,false); btn1Obj.addEventListener("click",method2,false); btn1Obj.addEventListener("click",method3,false);
実行順序は、method1->method2->method3 です
の場合IE シリーズでは、attachEvent を使用します。たとえば、複数のイベントを順番に実装できます。
コードは次のとおりです。
var btn1Obj = document.getElementById("btn1"); //object.attachEvent(event,function); btn1Obj.attachEvent("onclick",method1); btn1Obj.attachEvent("onclick",method2); btn1Obj.attachEvent("onclick",method3);
実行順序は、method3->method2->method1 です
======= ========= =======================================
でMozilla:
addEventListener の使用方法
target.addEventListener(type,listener,useCapture);
ターゲット: ドキュメント ノード、ドキュメント、ウィンドウ、または XMLHttpRequest。
type: 文字列、イベント名。「クリック」、「マウスオーバー」、「キーダウン」などの「オン」を除く。
listener: EventListener インターフェイスまたは JavaScript の関数を実装します。
useCapture: キャプチャを使用するかどうか。通常は false。例:
document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
IE の場合:
target.attachEvent(type, listener);
ターゲット: ドキュメント ノード、ドキュメント、ウィンドウ、または XMLHttpRequest。
type: 文字列、「onclick」、「onmouseover」、「onkeydown」などの「on」を含むイベント名。
listener: EventListener インターフェイスまたは JavaScript の関数を実装します。 例: document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
W3C と IE は、設定を削除するために使用される指定されたイベントの削除もサポートしています。イベントの形式は次のとおりです:
removeEventListener(event,function,capture/bubble);
Windows IE の形式は次のとおりです:
detachEvent(event,function);
DOM2 の進化:
DOM 0 Event | DOM 2 Event |
onblur() | blur |
onfocus() | focus |
onchange() | change |
onmouseover() | mouseover |
マウスアウト() | マウスアウト |
onmousemove() | mousemove |
onmousedown() | mousedown |
onmouseup() | mouseup |
onclick() | click |
ondblclick () | dblclick |
onkeydown() | keydown |
onkeyup() | keyup |
onkeypress() | keypress |
submit() | submit |
onload () | ロード |
onunload() | アンロード |
新的DOM2 用法可以addEventListener()这个函数来观察到:
代码如下:
addEventListener(event,function,capture/bubble);
参数event如上表所示, function是要执行的函数, capture与bubble分别是W3C制定得两种时间模式,简单来说capture就是从document的开始读到最后一行, 再执行事件, 而bubble则是先寻找指定的位置再执行事件.
capture/bubble的参数是布尔值, True表示用capture, False则是bubble.Windows Internet Explorer也有制定一种EventHandler, 是 attachEvent(), 格式如下:
代码如下:
window.attachEvent(”submit”,myFunction());
比较特别的是attachEvent不需要指定capture/bubble的参数, 因为在windows IE环境下都是使用Bubble的模式.
如何判断是否支持哪种监听呢?如:
代码如下:
if (typeof window.addEventListener != “undefined”) { window.addEventListener(”load”,rollover,false); } else { window.attachEvent(”onload”,rollover) }
上述的 typeof window.addEventListener != “undefined” 程序代码可以判断使用者的浏览器是否支持AddEventListener这个事件模型, 如果不支持就使用attachEvent.
W3C 及 IE 同时支持移除指定的事件, 用途是移除设定的事件, 格式分别如下:
W3C格式:
removeEventListener(event,function,capture/bubble);
Windows IE的格式如下:
detachEvent(event,function);
总结:
本文通过实例详细介绍了关于JavaScript中addEventListener的使用,相信小伙伴对此也是能够有一定的了解,希望对你的工作有所帮助!
相关推荐:
javascript DOM对象学习之事件流addEventListener()使用教程
详解addEventListener的三个参数之useCapture
以上がJavaScriptでのaddEventListenerの使い方の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。