上一篇文章我们了解了事件流是什么,等于我们了解了链条是什么,这一篇文章我们来看看什么是事件对象。事件对象即在触发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种行为:取得对象元素,取消事件的默认行为,阻止事件冒泡