Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Verwendung von addEventListener in JavaScript

Detaillierte Erläuterung der Verwendung von addEventListener in JavaScript

黄舟
黄舟Original
2017-12-04 14:55:524711Durchsuche

addEventListener wird verwendet, um das Ereignisverarbeitungsprogramm zu registrieren, das im IE „attachEvent“ ist. Warum sprechen wir über „addEventListener“ anstelle von „attachEvent“? Erstens ist attachmentEvent relativ einfach und zweitens ist addEventListener der Standardinhalt in DOM. Heute werde ich Ihnen eine detaillierte Erklärung der Verwendung von addEventListener in JavaScript vorstellen!

(Es ist zu beachten, dass p vor js stehen muss)

Wenn Sie dasselbe Ereignis an ein DOM-Objekt binden, wird im Allgemeinen nur das letzte wirksam . Zum Beispiel:

Der Code lautet wie folgt:

document.getElementById("btn").onclick = method1; 
document.getElementById("btn").onclick = method2; 
document.getElementById("btn").onclick = method3;

Dann wird nur Methode 3 wirksam.
Wenn es sich um die Mozilla-Serie handelt, können Sie addEventListener verwenden, um mehrere Ereignisse der Reihe nach zu implementieren, zum Beispiel:

Der Code lautet wie folgt:

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);

Die Ausführung Reihenfolge ist method1-> method2->method3

Wenn es sich um eine IE-Serie handelt, verwenden Sie attachmentEvent, um mehrere Ereignisse nacheinander zu implementieren, zum Beispiel:

Der Code lautet wie folgt :

var btn1Obj = document.getElementById("btn1"); 
//object.attachEvent(event,function); 
btn1Obj.attachEvent("onclick",method1); 
btn1Obj.attachEvent("onclick",method2); 
btn1Obj.attachEvent("onclick",method3);

Die Ausführungsreihenfolge ist Methode3->Methode2->Methode1
======================== ========== =====================
In Mozilla:
So verwenden Sie addEventListener

target.addEventListener(type,listener,useCapture);

Ziel: Dokumentknoten, Dokument, Fenster oder XMLHttpRequest.
Typ: Zeichenfolge, Ereignisname, ausgenommen „on“, wie „click“, „mouseover“, „keydown“ usw.
Listener: implementiert die EventListener-Schnittstelle oder eine Funktion in JavaScript.
useCapture: Ob Capture verwendet werden soll, normalerweise falsch. Zum Beispiel:

document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);

Im IE:

target.attachEvent(type, listener);

Ziel: Dokumentknoten, Dokument, Fenster oder XMLHttpRequest.
Typ: Zeichenfolge, Ereignisname, einschließlich „on“, wie „onclick“, „onmouseover“, „onkeydown“ usw.
Listener: implementiert die EventListener-Schnittstelle oder eine Funktion in JavaScript. Zum Beispiel: document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
W3C und IE unterstützen beide das Entfernen bestimmter Ereignisse Die Formate der festgelegten Ereignisse sind wie folgt:

removeEventListener(event,function,capture/bubble);

Das Format von Windows IE ist wie folgt:

detachEvent(event,function);

DOM2-Entwicklung:

DOM 0-Ereignis DOM 2-Ereignis td> onblur() blur onfocus() focus onchange() ändern onmouseover() mouseover onmouseout
DOM 0 Event DOM 2 Event
onblur() blur
onfocus() focus
onchange() change
onmouseover() mouseover
onmouseout() mouseout
onmousemove() mousemove
onmousedown() mousedown
onmouseup() mouseup
onclick() click
ondblclick() dblclick
onkeydown() keydown
onkeyup() keyup
onkeypress() keypress
onsubmit() submit
onload() load
onunload() unload
()mouseout onmousemove () mousemove onmousedown() mousedown onmouseup() mouseup onclick() klick ondblclick () dblclick onkeydown() keydown onkeyup() keyup onkeypress()keypress onsubmit() td>submit onload() load onunload() unload tbody>


新的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问题

详解addEventListener的三个参数之useCapture

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von addEventListener in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn