Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée de l'utilisation de addEventListener en JavaScript

黄舟
Libérer: 2017-12-04 14:55:52
original
4773 Les gens l'ont consulté

addEventListener est utilisé pour enregistrer le programme de traitement d'événements , qui est attachEvent dans IE Pourquoi parlons-nous de addEventListener au lieu de attachEvent ? Premièrement, attachEvent est relativement simple et deuxièmement, addEventListener est le contenu standard du DOM. Aujourd'hui, je vais vous présenter une explication détaillée de l'utilisation de addEventListener en JavaScript !

(A noter que p doit être placé devant js)

Généralement, si vous liez le même événement à un objet DOM, seul le dernier prendra effet . Par exemple :

Le code est le suivant :

document.getElementById("btn").onclick = method1; 
document.getElementById("btn").onclick = method2; 
document.getElementById("btn").onclick = method3;
Copier après la connexion

Alors seule la méthode 3 prendra effet.
S'il s'agit de la série Mozilla, utilisez addEventListener pour implémenter plusieurs événements dans l'ordre, par exemple :

Le code est le suivant :

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);
Copier après la connexion

L'ordre d'exécution est method1-> method2->method3

S'il s'agit d'une série ie, utilisez attachEvent pour implémenter plusieurs événements en séquence, par exemple :

Le code est le suivant :

var btn1Obj = document.getElementById("btn1"); 
//object.attachEvent(event,function); 
btn1Obj.attachEvent("onclick",method1); 
btn1Obj.attachEvent("onclick",method2); 
btn1Obj.attachEvent("onclick",method3);
Copier après la connexion

L'ordre d'exécution est method3->method2->method1
=========================== ======== =====================
Dans Mozilla :
Comment utiliser addEventListener

target.addEventListener(type,listener,useCapture);
Copier après la connexion

cible : Nœud de document, document, fenêtre ou XMLHttpRequest.
type : chaîne, nom de l'événement, à l'exclusion de "on", tel que "clic", "mouseover", "keydown", etc.
listener : implémente l'interface EventListener ou une fonction en JavaScript.
useCapture : s'il faut utiliser la capture, généralement faux. Par exemple :

document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
Copier après la connexion

Dans IE :

target.attachEvent(type, listener);
Copier après la connexion

cible : nœud de document, document, fenêtre ou XMLHttpRequest.
type : chaîne, nom de l'événement, y compris "on", tel que "onclick", "onmouseover", "onkeydown", etc.
listener : implémente l'interface EventListener ou une fonction en JavaScript. Par exemple : document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
W3C et IE prennent tous deux en charge la suppression des événements spécifiés. Les formats des événements définis sont les suivants :

removeEventListener(event,function,capture/bubble);
Copier après la connexion
Copier après la connexion

Le format de Windows IE est le suivant :

detachEvent(event,function);
Copier après la connexion
Copier après la connexion

Évolution DOM2 :

< table class="jbborder">Événement DOM 0Événement DOM 2onblur()flouonfocus()focusonchange()changeronmouseover()mouseover< tr>< td valign="top">onmouseout
DOM 0 EventDOM 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 <🎜>()mousemoveonmousedown<🎜>()mousedownonmouseup()mouseuponclick()cliquezondblclick <🎜>()dblclickonkeydown()keydownonkeyup()keyup< tr>< td valign="top">onkeypress()keypressonsubmit()< td valign="top">soumettreonload()charger onunload()décharger


新的DOM2 用法可以addEventListener()这个函数来观察到:

代码如下:

addEventListener(event,function,capture/bubble);
Copier après la connexion

参数event如上表所示, function是要执行的函数, capture与bubble分别是W3C制定得两种时间模式,简单来说capture就是从document的开始读到最后一行, 再执行事件, 而bubble则是先寻找指定的位置再执行事件.
capture/bubble的参数是布尔值, True表示用capture, False则是bubble.Windows Internet Explorer也有制定一种EventHandler, 是 attachEvent(), 格式如下:

代码如下:

window.attachEvent(”submit”,myFunction());
Copier après la connexion

比较特别的是attachEvent不需要指定capture/bubble的参数, 因为在windows IE环境下都是使用Bubble的模式.
如何判断是否支持哪种监听呢?如:

代码如下:

if (typeof window.addEventListener != “undefined”) { 
window.addEventListener(”load”,rollover,false); 
} else { 
window.attachEvent(”onload”,rollover) 
}
Copier après la connexion

上述的 typeof window.addEventListener != “undefined” 程序代码可以判断使用者的浏览器是否支持AddEventListener这个事件模型, 如果不支持就使用attachEvent.
W3C 及 IE 同时支持移除指定的事件, 用途是移除设定的事件, 格式分别如下:
W3C格式:

removeEventListener(event,function,capture/bubble);
Copier après la connexion
Copier après la connexion

Windows IE的格式如下:

detachEvent(event,function);
Copier après la connexion
Copier après la connexion

总结:

本文通过实例详细介绍了关于JavaScript中addEventListener的使用,相信小伙伴对此也是能够有一定的了解,希望对你的工作有所帮助!

相关推荐:

javascript DOM对象学习之事件流addEventListener()使用教程

关于addEventListener问题

详解addEventListener的三个参数之useCapture

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal