IE中采用事件冒泡来控制事件流,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点
Netscape团队提出的另一种事件流叫做事件捕获,即不太具体的节点应该更早的接收到事件,而最具体的节点应该最后接收到事件
DOM事件流规定包括三个阶段,事件捕获阶段、处于目标阶段和事件冒泡阶段,最后一个阶段对事件做出响应
处理事件的函数被叫做事件处理程序,名称以“on”开头
每个元素相应的事件发生时,都可以指定同名的HTML特性,实际上是能够执行的JavaScript代码
DOM0级事件处理程序:每个元素都有自己的事件处理程序属性,将这种属性的值设置为一个函数,就可以指定事件处理程序
DOM2级事件处理程序:addEventList()和removeEventLister()两个方法用于处理指定和删除事件处理程序的操作
接收三个参数,要处理的事件名 作为事件处理程序的函数和一个布尔值,如果为true表示在捕获阶段调用该函数,如果为false则在冒泡阶段调用
IE事件处理程序有attachEvent()和detachEvent(),只接受事件处理程序名和事件处理程序函数两个参数,IE8和之间版本函数只能被添加到冒泡阶段,DOM2中的事件处理程序名前面不加on,IE的要加
在触发DOM上的某个事件时,会产生一个事件对象event,这个对象包含着所有与事件相关的信息
事件对象的eventPhase属性可以用来确定事件当前正位于事件流的哪个阶段,捕获阶段为1,处于目标阶段为2,冒泡阶段为3
IE对event的访问方式取决于指定事件处理程序的方法,在使用DOM0级方法添加事件处理程序时,event对象作为window对象的一个属性存在
事件类型分为:
UI事件、焦点事件、鼠标事件、滚轮事件、文本事件、键盘事件、合成事件、变动事件