javascript event 学习笔记 1.事件流

JS通过事件与DOM和BOM交互。

事件可以被事件处理程序(listener or handler)订阅,当事件发生时,执行事件处理程序。

 

事件流(event flow)

当时间发生后,会根据dom结构进行传播,事件流描述了事件进行传播的方向。

IE团队和Netscape团队提出了2种方式:事件冒泡(Event Bubbling)和事件捕获(Event Capturing)。

假如我们的文档结构入下图,当我们点击button1后,各自情况如下:

javascript event 学习笔记 1.事件流

 

事件冒泡

这是IE团队提出的模型,事件先在最具体的元素触发,然后向父级元素传播。

javascript event 学习笔记 1.事件流

 

事件捕获

这是Netscape团队提出的模型,事件现在最上级元素触发,然后向子级元素传播,最后到达最具体的元素。

javascript event 学习笔记 1.事件流

事件捕获的设计目的是在事件到达最具体的元素前,截断事件。

 

DOM事件流

在DOM Level 2中规定事件流要经历3个阶段:

事件捕获阶段、在目标元素和事件冒泡阶段。

事件捕获首先发生,提供截断事件的机会;接下来目标元素收到事件;最后是事件冒泡,可以做一些最后的处理工作。
javascript event 学习笔记 1.事件流

每个浏览器的不同版本对于事件流的支持是不一样的,但是一定要理解事件流的概念。