事件流描述的是从页面接收事件的顺序。
响应某个事件的函数叫做事件处理程序(或事件侦听器)
事件处理程序
1.HTML事件处理程序(在HTML中嵌入JavaScript代码)缺点:存在时差问题;HTML和javas代码紧密耦合;扩展事件处理程序的作用域链在不同浏览器中导致不同结果;
2.DOM0级事件处理程序 将一个函数赋值给一个事件处理程序属性 每个事件只支持一个事件处理程序
var btn = document.getElementById("myBtn");
btn.onclick = function(){
alert(this.id);//myBtn this引用当前元素
};
3.DOM2级事件处理程序 所有DOM节点中都包含这两个方法 addEventListener()和removeEventListener() 都接收三个参数:要处理的事件名,作为事件处理程序的函数 ,一个布尔值(true:捕获阶段调用事件处理程序,false:冒泡阶段调用事件处理程序)
注意:1)addEventListener()可以为同一个事件添加多个事件处理程序,按照添加顺序触发,也只能通过removeEventListener()移除,参数和添加时使用的参数相同;也意味着这种方式添加的匿名函数无法移除。
4.IE事件处理程序 attachEvent()和detachEvent() 接收两个相同的参数:事件处理程序名称,使事件处理程序函数 ; attachEvent()添加的事件都会被添加到冒泡阶段,并且事件处理程序会在全局作用域中运行,this为window;匿名函数不能被移除
var btn = document.getElementById("myBtn");
btn.attachEvent("onclick",function(){
alert(this);//window
});