上一篇文章我们了解了事件流是什么,等于我们了解了链条是什么,这一篇文章我们来看看什么是事件对象。事件对象即在触发DOM产生的一个事件对象event。这个对象包含所有与事件有关的信息,包括事件的元素、事件的类型以及其他与特定事件相关的信息。所有浏览器都支持event对象
DOM中的事件对象
event对象有关的属性和方法:
| 属性/方法 | 类型 | 读/写 | 说明 |
| bubbles | Boolean | 只读 | 事件是否冒泡 |
| cancelable | Boolean | 只读 | 是否可以取消事件的默认行为 |
| currentTarget | Element | 只读 |
事件处理程序正在处理的事件的元素 |
| defaultParevented | Boolean | 只读 | 调用preventDefault()----true |
| detail | Integer | 只读 | 事件相关细节 |
| eventPhase | Integer | 只读 | 事件处理程序的阶段:1捕获2处于目标3冒泡 |
| preventDefault() | Function | 只读 | 取消事件的默认行为 |
| stopImmediatePropagation() | Function | 只读 | 取消事件的进一步冒泡,同时阻止任何事件处理程序被调用 |
| stopPropagation() | Function | 只读 | 取消事件的进一步冒泡 |
| target | Element | 只读 | 事件的目标 |
| trusted | Boolean | 只读 | true:浏览器发生的,false:开发人员用JS创建的 |
| type | String | 只读 | 被触发的事件类型 |
| view | Abstractview | 只读 | 与事件关联的抽象视图。 |
阻止特定事件的默认行为:
- cancelable=true
- preventDefault()
- stopPropagation()
只有在事件处理程序执行期间,才有event对象
IE的事件对象
- 使用DOM0级方法添加事件处理程序时,event对象作为window对象的一个属性存在
- 使用HTML特性指定事件处理 程序时,可以通过event变量访问
event对象有关的属性和方法:
| 属性/方法 | 类型 | 读/写 | 说明 |
| canceBubble | Boolean | 只读 | false:默认值;true:取消事件冒泡(===stopPropagation()) |
| returnValue | Boolean | 只读 | true:默认值;false:取消事件的默认行为(===preventDefault()) |
| srcElement | Element | 只读 | 事件的目标(===target) |
| type | String | 只读 | 被触发的事件类型 |
阻止特定事件的默认行为:
- returnValue=false
- canceBubble=true
跨浏览器的事件对象
无论是DOM还是IE中的event,可以用一个对象(EventUtil)来兼容两种方式
- getEvent()
- getTarget()
- preventDefault()
- stopPropagation()
总结:
无论是什么类型的对象,都包含3种行为:取得对象元素,取消事件的默认行为,阻止事件冒泡
深入理解事件对象
本文详细解析了事件对象的属性和方法,包括事件的元素、类型、冒泡、取消默认行为等关键信息,以及如何在不同浏览器中兼容处理事件。

被折叠的 条评论
为什么被折叠?



