传统事件绑定
<div onclick=””>123</div>
div1.onclick=function(){};
<button onmouseover=””></button>
1、如果说给同一个元素绑定了两次或者多次相同类型的事件,那么后面的绑定会覆盖前面的绑定
2、不支持DOM事件流 (事件捕获阶段 =>目标元素阶段=>事件冒泡阶段)
符合W3C标准的事件绑定的方式
addEventListener/attachEvent
1、 如果说给同一个元素绑定了两次或者多次相同类型的事件,所有的绑定将会依次触发
2、 支持DOM事件流
A、非IE浏览器:
addEventListener
1、 进行事件绑定传参不需要on前缀
addEventListener(“click”,function(){},true);//此时的事件就是在事件捕获阶段执行
2、有第三个参数:代表是否在捕获阶段执行,默认值是false
addEventListener(“click”,function(e){
})
addEventListener(“click”,function(){},false) 事件在冒泡阶段执行
B、IE浏览器
ie9开始,ie11 edge:addEventListener
ie9以前 ie8:attachEvent/detachEvent
1、 进行事件类型传参需要带上on前缀
dom1.attachEvent(“onclick”,functioin(){});
2、 只有俩参数,这种方式只支持事件冒泡,不支持事件捕获