Event对象

一、定义

Event对象只在事件发生时创建,且可被事件处理程序访问。在所有事件处理程序执行完成后,event对象就被销毁。

(注意:IEDOM按照两种不同的方式实现event对象)

二、定位

(一)IE浏览器

  1. IE浏览器中,event对象是window对象的一个属性。
  2. Eventwindow对象的一个属性,只在事件发生时才访问。所有事件处理程序结束,event对象就销毁。

(二)DOM

  1. event只能作为仅有的参数传给事件处理程序

综合以上两点:

要正确使用event对象,首先需要判断浏览器是IE还是DOM兼容的浏览器。

三、属性和方法

四、两种event对象

(一)相同点

  1. 获取事件类型

使用var  sType  =  oEvent.type;

返回值诸click“mouseover”等值,这个属性type属性在一个函数被用于两个不同事件的事件处理程序时是有用的。

  1. 获取键盘代码

keydown或者keyup事件期间,可用keyCode属性获取按键代码。keyCode属性总是包含一个代表按键的代码。

  1. 检测Shift ,Alt ,Ctrl

检测Shift ,Alt ,Ctrl 是否被按下,IEDOM中可以采用如下方式:

Var  bShift = oEvent.shiftKey;

Var  bAlt = oEvent.atKey;

Var  bCtrl = oEvent.crl Key;

这些属性的每一个都返回一个布尔值,指示该键是否被按下。这些键同时也触发keydown事件,从而得到keyCode

  1. 获取客户区坐标

鼠标事件期间,通过clientXclienY属性告诉我们鼠标的位置离该区域边缘的距离。

  1. 获取屏幕坐标

鼠标事件期间,通过screenXscreenY属性,获取鼠标指针相对于计算机屏幕的位置。

(二)不同点

  1. 获取目标

IE的目标只能是元素、document或者window;而DOM兼容浏览器的目标同时可以准许文本节点成为目标。

  1. 获取字符码

IEkeyCode属性返回该字符的字符码。

DOM兼容的浏览器中,按键代码和字符代码分离。

  1. 阻止事件的默认行为

IE中,阻止默认事件行为,returnValue属性设置为false

oEvent.returnValue = false;

Mozilla,调用.preventDefault()

oEvent.preventDefault();

 

  1. 中止事件传播(冒泡)

IE中,阻止事件冒泡,需cancelBubble属性设为true

oEvent.cancelBubble = true;

Mozilla,调用stopPropagation()

oEvent.stopPropagation();

 

posted on 2017-10-20 22:53  殷慧彬  阅读(177)  评论(0编辑  收藏  举报

导航