1.DOM 事件的级别
- DOM级别一共可以分为四个级别:DOM0级、DOM1级、DOM2级和DOM3级。
- 而DOM事件分为3个级别:DOM 0级事件处理,DOM 2级事件处理和DOM 3级事件处理。
- 由于DOM 1级中没有事件的相关内容,所以没有DOM 1级事件。
1.1.DOM 0级事件
- 0级是最早的,而且目前所有的浏览器仍支持0级DOM模型。
- 缺点是一个事件的处理程序只能对应一个函数
- 删除 DOM 0级事件处理程序,只要将对应事件属性置为null即可。
写法有两种
在标签内写onclick事件
<input id="myButton" type="button" value="Press Me" onclick="alert('thanks');" >
在JS写onlicke=function(){}函数
document.getElementById("myButton").onclick = function () {alert('thanks');}
1.2.DOM 2级事件
[x] 在2级模型中可以为特定对象的事件注册多个事件监听。
[x] DOM 2级事件的由来就是网景和IE对于DOM事件的调用顺序出了两种,后来 W3C 统一了一下,也就是后来的 DOM 2级事件了
el.attachEvent('onclick',fn) // 冒泡(IE5),儿子=>爸爸=>爷爷el.addEventListener('click',fn) // 捕获(网景),爷爷=>爸爸=>儿子el.addEventListener('click',fn,bool) // W3C,bool为true捕获,为false冒泡(或什么都不写)
[x] 2级事件的删除:
el.removeEventListener("click",fn,bool)
另外2级DOM事件包含三个阶段
- 捕获阶段:事件从window对象自上而下向目标节点传播的阶段;
- 目标阶段:真正的目标节点正在处理事件的阶段;
- 冒泡阶段:事件从目标节点自下而上向window对象传播的阶段。
1.2.DOM 3级事件
DOM3级事件模块在DOM2级事件的基础上重新定义了这些事件,也添加了一些新事件。
- UI事件,当用户与页面上的元素交互时触发,如:load、scroll
- 焦点事件,当元素获得或失去焦点时触发,如:blur、focus
- 鼠标事件,当用户通过鼠标在页面执行操作时触发如:dblclick、mouseup
- 滚轮事件,当使用鼠标滚轮或类似设备时触发,如:mousewheel
- 文本事件,当在文档中输入文本时触发,如:textInput
- 键盘事件,当用户通过键盘在页面上执行操作时触发,如:keydown、keypress
- 合成事件,当为IME(输入法编辑器)输入字符时触发,如:compositionstart
- 变动事件,当底层DOM结构发生变化时触发,如:DOMsubtreeModified
- 同时DOM3级事件也允许使用者自定义一些事件。

