Maison  >  Article  >  interface Web  >  Exemples d'utilisation des compétences addEventListener_javascript

Exemples d'utilisation des compétences addEventListener_javascript

WBOY
WBOYoriginal
2016-05-16 16:49:391290parcourir

(要注意的是div必须放到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);

target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);

IE中:

target.attachEvent(type, listener);
target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
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
onmouseout() mouseout
onmousemove() mousemove
onmousedown() mousedown
onmouseup() mouseup
onclick() click
ondblclick() dblclick
onkeydown() keydown
onkeyup() keyup
onkeypress() keypress
onsubmit() submit
onload() load
onunload() unload


La nouvelle utilisation du DOM2 peut être observée avec la fonction addEventListener() :
Copier le code Le code est tel suit :

addEventListener(event, function, capture/bubble);

Le paramètre event est comme indiqué dans le tableau ci-dessus, function est la fonction à exécuter, capture et bubble sont respectivement formulés par le W3C. Il existe deux modes temporels. Pour faire simple, capture lit la dernière ligne du début du document puis exécute l'événement, tandis que bubble recherche d'abord l'emplacement spécifié puis exécute l'événement.
Les paramètres de capture/bulle sont des valeurs booléennes, et True signifie Utiliser la capture, False signifie que Windows Internet Explorer possède également un EventHandler, qui est attachEvent(). Le format est le suivant :
<.>Copier le code Le code est le suivant :
window.attachEvent("submit",myFunction());

La particularité est que attachEvent n'a pas besoin de spécifier les paramètres de capture/bulle, car dans l'environnement Windows IE, le mode Bulle est utilisé

Comment déterminer si quel type de surveillance est utilisé. soutenu? Par exemple :


if (typeof window.addEventListener != “undefined ") {
window.addEventListener("load",rollover,false);
} else {
window.attachEvent("onload",rollover)
}


Le type de window.addEventListener != « non défini » ci-dessus peut déterminer si le navigateur de l'utilisateur prend en charge le modèle d'événement AddEventListener. Sinon, utilisez attachEvent et IE prennent également en charge la suppression du spécifié. Les événements sont utilisés pour supprimer les événements définis. Les formats sont les suivants :

Format W3C :

removeEventListener(event, function, capture/bubble)

Windows IE Le format ; est la suivante :

detachEvent(event,function);
Déclaration:
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