二级监听事件
二级监听事件的方法
- DOM的2级事件定义了两个方法,addEventListener() 和 removeEventListener()。
- 参数:要处理的事件名,作为事件处理程序的函数和一个布尔值。
- true,表示在捕获阶段调用事件处理程序;false,表示在冒泡阶段调用事件处理程序。
例如:
var btn= document.getElementById("clickBtn");
btn.addEventListener("click",function(){
alert(this.id);
},false);
因为最后一个参数是false,该事件会在冒泡阶段被触发。使用DOM2级方法处理事件处理程序的主要好处是可以添加多个事件处理程序。
var btn = document.getElementById("myBtn");
btn.addEventListener("click".function(){
alert(1);
},false);
btn.addEventListener("click",function(){
alert(2);
},false);
例如这里就会先弹出1,然后弹出2。
注意
addEventListener()添加的事件只能使用removeEventListener()来移除;移除时传入的参数与添加时相同。如果通过addEventListener()添加的匿名函数将无法移除。将事件处理程序添加到事件流的冒泡阶段,可以最大限度地兼容各种浏览器。
IE中,使用attachEvent(),detachEvent()。这两个方法接受相同的两个参数:
1事件处理程序名称,2事件处理程序函数。
由于IE8及更早版本只支持事件冒泡,所以通过attachEvent()添加的事件处理程序都会被添加到冒泡阶段。