HTML DOM (文档对象模型)
- DOM0级处理事件就是将一个函数赋值给一个事件处理属性。
1 | // 改变 HTML 输出流 在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。 |
DOM2级事件在DOM0级时间段额基础上弥补了一个处理处理程序,无法同时绑定多个处理函数的缺点。允许给一个程序添加多个处理函数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
211. addEventListener() 方法
addEventListener() 方法用于向指定元素添加事件句柄。
addEventListener() 方法添加的事件句柄不会覆盖已存在的事件句柄。
你可以向一个元素添加多个事件句柄。
你可以向同个元素添加多个同类型的事件句柄,如:两个 "click" 事件。
你可以向任何 DOM 对象添加事件监听,不仅仅是 HTML 元素。如: window 对象。
addEventListener() 方法可以更简单的控制事件(冒泡与捕获)。
当你使用 addEventListener() 方法时, JavaScript 从 HTML 标记中分离开来,可读性更强, 在没有控制HTML标记时也可以添加事件监听。
你可以使用 removeEventListener() 方法来移除事件的监听。
2. removeEventListener() 方法
removeEventListener() 方法移除由 addEventListener() 方法添加的事件句柄DOM3级事件是在DOM2级事件的基础上添加很多事件类型。
1 | UI事件,当用户与页面上的元素交互时触发,如:load、scroll |
DOM0级
- 使用赋值方式绑定事件;
- 只能在冒泡阶段触发;
- 只能绑定一个事件函数;
- 通过置空onclick属性解绑事件;
- 事件函数this属性引用当前函数对象。
DOM2级
- 非IE方式
- 使用addEventListeren绑定事件;
- 事件名无on前缀;
- 使用addEventListeren第三个参数控制事件触发阶段;
- 可绑定多个事件函数;
- 多个事件函数的书法顺序和绑定顺序一样;
- 事件函数this属性引用当前函数对象;
- IE方式和非IE不同的是以下几点:
- 事件名带on前缀;
- 事件函数this属性引用全局对象;
- 多个事件函数的书法顺序和绑定顺序相反;


