[TimLinux] JavaScript 事件

1. 简介

JavaScript与HTML之间的交互式通过事件来实现的,事件是文档或浏览器窗口中发生的一些特定的交互瞬间,使用事件处理程序来预订事件,从而在事件发生时,能够执行特定的代码。事件使页面的行为(JavaScript)与页面的外观(HTML、CSS)解耦。BOM、DOM都有支持的事件类型。

事件是发生在对象上的(比如:window对象,节点对象)

2. 事件流

事件流:描述的是从页面接收事件的顺序。两种事件流:冒泡流,捕获流。

2.1. 事件冒泡

事件冒泡:事件开始时由最具体的元素(嵌套最深处的那个节点)接收,然后逐层向上传播到较为不具体的节点(文档)。

document  Document 第四
 |
 |------- html  Element html 第三
            |
            |-------body  Element body 第二
                       |           
                       |-------div Element div 第一

所有浏览器都支持事件冒泡,事件冒泡的终点:window 对象。

2.2. 事件捕获

事件捕获:不太具体的节点更早接收到事件,最具体的节点应该最后接收到事件。用意:在事件到达预订目标之前捕获它。

document  Document 第一
 |
 |------- html  Element html 第二
            |
            |-------body  Element body 第三
                       |           
                       |-------div Element div 第四

老版本浏览器对事件捕获支持不好,可放心使用事件冒泡,特殊需要时才是用事件捕获。

2.3. DOM事件流

DOM2级事件流:规定事件流包括三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。

  • 事件捕获阶段:为截获事件提供了机会;
  • 实际的目标接收到事件
  • 事件冒泡阶段:对事件做出相应。
第一  document Document                     第七
  第二 |-- html  Element html             第六
        第三 |-- body Element body     第五
                 |-- div Element div
                     第四

多数浏览器支持DOM2级事件流

3. 事件处理程序

ttt

4. 事件对象

ttt

5. 事件类型

ttt

6. 内存和性能

ttt

7. 模拟事件

ttt

猜你喜欢

转载自www.cnblogs.com/timlinux/p/9276734.html