在添加事件处理程序上addEventListener和attachEvent主要有几个区别:

1.参数个数不相同;

addEnentListener()和removeEventListener(),接收3个参数,分别是:

(1)要处理的事件名;
(2)事件处理程序的函数;
(3)布尔值,布尔值为true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段处理程序;
  var btn = document.getElementById("btnClick");
  btn.addEventListener("click",function(){
   alert(this.id);
}false);

attachEvent()和detachEvent()接受两个参数,分别是:

(1)事件处理程序名称;
(2)事件处理程序函数;
var btn = document.getElementById("btnClick");
btn.attachEvent("onclick",function(){
alert("Clicked");
})

2.第一个参数的意义不相同

addEventListener第一个参数是事件类型(load,click...);
attachEvent第一个参数是事件处理函数名称(onload,onclick...);

3.事件处理程序作用域不相同

addEventListener的作用域是元素本身,this是指的触发元素,而attachEvent事件处理程序会在全局变量内运行,this是window

4.为一个事件添加多个事件处理程序时,执行顺序不相同

标签: none

添加新评论