attachEvent与addEventListener的区别?
在添加事件处理程序上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