DOM中的事件对象 | IE事件对象 | ||||||
属性/方法 | 类型 | 读/写 | 说明 | 属性/方法 | 类型 | 读/写 | 说明 |
bubles | Boolean | 只读 | 表明事件是否冒泡 | cancleBubble | Boolean | 读/写 |
默认为false,但将其设置为true就可以取消事件冒泡 (与DOM中的stopPropagation()方法的作用相同) |
cancelable | Boolean | 只读 | 表明是否可以取消事件的默认行为 | returnValue | Boolean | 读/写 |
默认为true,但将其设置为false就可以取消事件的默认行为 (与DOM的preventDefault()方法的作用相同) |
currentTarget | Element | 只读 | 其事件处理程序当前正在处理事件的那个元素 | scrElement | Element | 只读 | 事件的目标(与DOM中的target属性相同) |
defaultPrevented | Boolean | 只读 |
为true表示已经调用了preventDefault() (DOM3级事件新增)是否取消默认事件 |
type | String | 只读 | 被触发的事件类型 |
detail | Integer | 只读 |
与事件相关的的细节信息 |
||||
eventPhase | Integer | 只读 |
调用事件处理程序的阶段:1表示捕获阶段, 2表示‘处于目标’,3表示冒泡阶段 |
||||
preventDefault() | Function | 只读 |
取消事件的默认行为,如果cancelable为true 则可以使用这个方法 |
||||
stopImmediatePropagation() | Function | 只读 |
取消默认事件的进一步捕获或冒泡, 同时阻止任何事件处理程序被调用(DOM3级事件中新增) |
||||
stopPropgation() | Function | 只读 |
取消事件进一步捕获或冒泡。如果bubbles为 true,则可以使用这个方法 |
||||
target | Element | 只读 | 事件的目标 | ||||
trusted | Boolean | 只读 |
为true表示是浏览器生成的 为false表示是由开发人员通过js创建的 |
||||
type | String | 只读 |
被触发的事件类型 |
||||
view | AbstractView | 只读 |
与事件关联的抽象视图 等同于发生事件的window对象 |
兼容DOM的浏览器会将一个Event对象传入到事件处理程序中,无论事件处理程序使用什么方法(DOM0或DOM2),都会传入Event对象
IE中的事件对象
访问IE中的event对象和DOM不一样,取决于制定事件处理程序的方法,在试用Dom0级方法添加事件处理程序时,event对象作为window对象的一个属性存在
DOM0级方法
obj.onclick = function(){ alert(window.event.srcElement.parentNode); window.event.returnValue = false; return false; }
如果是用attachEvent添加
obj.attachEvent('onclick',function(event){ alert(event.type); });
oDiv.attachEvent('onclick',function(){ document.body.innerHTML += this; //attachEvent内部this指向window });
因为在IE中事件处理程序的作用域是根据制定他的方式确定的,所以不能认为this会始终等于事件目标故而使用Event.srcElement 事件源元素
取消事件的默认行为
var link = document.getElementById('a1'); link.onclick = function(event){ alert(window.event.type); window.event.returnValue = false; }
取消事件冒泡
var link = document.getElementById('a1'); link.onclick = function(event){ alert(window.event.type); window.event.cancelBubble = true; }