一般绑定事件时,我们都会在事件回调方法里用event.currentTarget获取当前对象,但到ie8里就获取不到了。

解决方法如下:

var eve = event || window.event; //获取事件对象
var objEle = eve.target || eve.srcElement; //获取document 对象的引用

 

event 对象常用属性和方法(W3C规范)

属性

描述

IE

非IE

W3C

altKey

返回当事件被触发时,"ALT" 是否被按下。

Yes

Yes

Yes

button

返回当事件被触发时,哪个鼠标按钮被点击。

Yes

Yes

Yes

clientX

返回当事件被触发时,鼠标指针的水平坐标。

Yes

Yes

Yes

clientY

返回当事件被触发时,鼠标指针的垂直坐标。

Yes

Yes

Yes

ctrlKey

返回当事件被触发时,"CTRL" 键是否被按下。

Yes

Yes

Yes

metaKey

返回当事件被触发时,"meta" 键是否被按下。

No

Yes

Yes

relatedTarget

返回与事件的目标节点相关的节点。

No

Yes

Yes

screenX

返回当某个事件被触发时,鼠标指针的水平坐标。

Yes

Yes

Yes

screenY

返回当某个事件被触发时,鼠标指针的垂直坐标。

Yes

Yes

Yes

shiftKey

返回当事件被触发时,"SHIFT" 键是否被按下。

Yes

Yes

Yes

bubbles

返回布尔值,指示事件是否是起泡事件类型。

No

Yes

Yes

cancelable

返回布尔值,指示事件是否可拥可取消的默认动作。

No

Yes

Yes

currentTarget

返回其事件监听器触发该事件的元素。

No

Yes

Yes

eventPhase

返回事件传播的当前阶段。

 

 

Yes

target

返回触发此事件的元素(事件的目标节点)。

No

Yes

Yes

timeStamp

返回事件生成的日期和时间。

No

Yes

Yes

type

返回当前 Event 对象表示的事件的名称。

Yes

Yes

Yes

方法

描述

IE

非IE

W3C

initEvent()

初始化新创建的 Event 对象的属性。

No

Yes

Yes

preventDefault()

通知浏览器不要执行与事件关联的默认动作。

No

Yes

Yes

stopPropagation()

不再派发事件。

No

Yes

Yes

除了上面W3C规范所规定的属性和方法外,IE浏览器还支持以下属性。

event 对象的属性(IE特有)

属性

描述

cancelBubble

如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。

fromElement

对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素。

keyCode

对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。对于 keydown 和 keyup 事件,它指定了被敲击的键的虚拟键盘码。虚拟键盘码可能和使用的键盘的布局相关。

offsetX,offsetY     

发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。

returnValue

如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,可以取消发生事件的源元素的默认动作。

srcElement           

对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。

toElement

对于 mouseover 和 mouseout 事件,该属性引用移入鼠标的元素。

x,y

事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素。