Home >Web Front-end >JS Tutorial >Detailed explanation of the use of addEventListener in JavaScript

Detailed explanation of the use of addEventListener in JavaScript

黄舟
黄舟Original
2017-12-04 14:55:524782browse

addEventListener is used to register the event processing program, which is attachEvent in IE. Why do we talk about addEventListener instead of attachEvent? Firstly, attachEvent is relatively simple, and secondly, addEventListener is the standard content in DOM. Today I will introduce to you a detailed explanation of the use of addEventListener in JavaScript!

(It should be noted that p must be placed in front of js)

Generally, if you bind the same event to a DOM object, only the last one will take effect. For example:

The code is as follows:

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

Then only method3 will take effect.
If it is the Mozilla series, use addEventListener to implement multiple events in order, for example:

The code is as follows:

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

The execution order is method1->method2- >method3

If it is an IE series, you can use attachEvent to implement multiple events in order, for example:

The code is as follows:

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

The execution order is method3->method2->method1
======================================== =================
In Mozilla:
How to use addEventListener

target.addEventListener(type,listener,useCapture);

target: document node, document, window or XMLHttpRequest .
type: String, event name, excluding "on", such as "click", "mouseover", "keydown", etc.
listener: Implements the EventListener interface or a function in JavaScript.
useCapture: Whether to use capture, usually false. For example:

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

In IE:

target.attachEvent(type, listener);

target: document node, document, window or XMLHttpRequest.
type: String, event name, including "on", such as "onclick", "onmouseover", "onkeydown", etc.
listener: Implements the EventListener interface or a function in JavaScript. For example: document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
W3C and IE both support the removal of specified events. The purpose is to remove The formats of the set events are as follows:

removeEventListener(event,function,capture/bubble);

The format of Windows IE is as follows:

detachEvent(event,function);

The evolution of DOM2:

##onblur()bluronfocus()focus##onchange()onmouseover()##onmouseout()onmousemove()onmousedown()onmouseup()mouseuponclick()clickondblclick()onkeydown()keydownonkeyup()keyuponkeypress()keypressonsubmit()submitonload()loadonunload() unload


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

DOM 0 Event DOM 2 Event
change
mouseover
mouseout
mousemove
mousedown
dblclick

The above is the detailed content of Detailed explanation of the use of addEventListener in JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn