事件流描述的是从页面中接收事件的顺序。IE的事件流水事件冒泡流,而Netscape Commuication的事件流水事件捕获流。
- 事件冒泡
- 事件捕获
DOM事件流
”DOM2级事件“规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。
事件处理程序
- HTML事件处理
- DOM0级事件处理程序
- DOM2级事件处理程序
- addEventListener()
- removeEventListener()
都接受三个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最后的布尔值参数如果是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。大多情况下选择false - 通过addEventListener()添加的事件处理程序只能使用removeEventListener()来移除。
事件对象
触发DOM上的某个事件,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。event对象包含与创建它的特定事件有关的属性和方法,触发的事件类型不一样,可用的属性和方法也不一样。
要阻止特定事件的默认行为,可以使用preventDefault()方法。只有cancelable属性设置为true的事件,才可以使用preventDefaultfault()来取消其默认行为。另,stopPropagation()方法用于立即停止事件在DOM层次中的传播,即取消进一步的事件捕获或冒泡。
事件对象的eventPhase属性,可以用来确定事件当前正位于事件流的哪个阶段。如eventPhase等于1,处于捕获阶段;如eventPhase等于2,则处于目标对象上;如eventPhase等于3,则处于冒泡阶段。
IE中的事件处理和事件对象都有所不同。
事件类型
- UI事件
- 焦点事件
- 鼠标事件
- 滚轮事件
- 文本事件
- 键盘事件
- 合成事件
- 变动事件
网友评论