本文实例讲述了JavaScript事件对象。分享给大家供大家参考,具体如下:
触发 DOM 上的事件时,会生成一个事件对象 event,它包含着所有与事件有关的信息,诸如导致事件的元素、事件的类型以及其他与特定事件相关的信息。所有的浏览器都支持 event 对象,但支持的方式不同。
兼容 DOM 的浏览器会将 event 对象传入事件处理程序(DOM0 级与 DOM2 级都支持):
var btn = document.getElementById("myBtn");btn.onclick = function (event) { console.log(event.type);//"click"};btn.addEventListener("click",function(event){ console.log(event.type);//"click",false};
event.type 保存的是被触发的事件类型。
通过 HTML 属性指定事件处理程序时, event 中保存的是 event 对象:
<input type="button" value="Click Me" onclick="alert(event.type)"/>
event 对象包含着创建它的特定事件相关的属性和方法,所以可能每个特定事件都有自己所特有的属性和方法,不过所有事件都会有这些属性和方法:
属性/方法 | 类型 | 读/写 | 说明 |
---|---|---|---|
bubbles | Boolean | 只读 | 事件是否冒泡。 |
cancelable | Boolean | 只读 | 是否可以取消事件的默认行为。 |
currentTarget | Element | 只读 | 与当前事件处理程序相关的元素。 |
defaultPrevented | Boolean | 只读 | true 表示已调用 preventDefault() 方法(DOM3 新增)。 |
detail | Integer | 只读 | 与事件相关的细节信息。 |
eventPhase | Integer | 只读 | 调用事件处理程序的阶段;1:捕获;2:处于目标;3:冒泡。 |
preventDefault() | Function | 只读 | 取消事件的默认行为(如果 cancelable 为 true,就可以调用这个方法)。 |
stopImmediatePropagation() | Function | 只读 | 阻止事件被进一步捕获或者冒泡,同时阻止任何事件处理程序被调用(DOM3 新增)。 |
stopPropagation() | Function | 只读 | 阻止事件被进一步捕获或者冒泡(如果 bubbles 为 true,就可以调用这个方法)。 |
target | Element | 只读 | 事件的目标。 |
trusted | Boolean | 只读 | true:事件是由浏览器生成的;false:事件是通过 JavaScript 创建的(DOM3 新增)。 |
type | String | 只读 | 被触发的事件类型。 |
view | AbstractView | 只读 | 与事件相关的抽象视图,相当于发生事件的 window 对象。 |
新闻热点
疑难解答
图片精选