事件

  1. 事件模型:冒泡型(全兼容)和捕获型(IE不兼容)
    (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标的顺序逐一触发,即从DOM层次结构的最底端往上一级级升。
    (2)捕获型事件:与冒泡型事件的顺序相反。
    【注】不光FF,IE以前的版本在处理<html>标记级别的事件时顺序也有出入,因此无论任何情况,都应该避免在<html>标记级别上处理事件。
  2. 事件监听函数:
    (1)IE:
    [object].attachEvent(“eventName”,fnEventHandler);//添加事件
    [object].detachEvent(“eventName”,fnEventHandler);//删除事件
    其中,eventName代表事件名称,如:”onclick”,”onload”,”onmouseover”等等
          fnEventHandler代表事件监听函数(注意:只写函数名,不带括号)
    (2)标准DOM:
    [object].addEventListener(“eventName”,fnEventHandler,bCapture);
    [object].removeEventListener(“evenName”,fnEvenHandler,bCapture);
    其中,前两个参数同(1),只不过事件名称应该相应的改为”click”,”onload”,”mouseover”,bCapture通常设为false,即冒泡事件(true为捕获事件)
  3. 事件对象:
    浏览器中的事件都是以对象的形式存在的。
    IE和标准DOM浏览器(如:FF)获取对象上的差别:
    IE中,事件对象是window对象的一个属性event。
    访问方法:oP.onclick=function(){var oEvent=window.event;}
    标准DOM浏览器中,event对象必须作为唯一的参数传给事件处理函数。
    访问方法:oP.onclick=function(oEvent){}
    【兼容方法】
    oP.onclick=function(oEvent){  //兼容非IE
       if(window.event) oEvent=window.event;//兼容IE
    }

事件常用的属性和方法

IE

标准DOM

类型

可读/可写

说明

type

type

String

IE中R/W,标准DOM中为R

事件名称

ScrElement

target

Element

IE中R/W,标准DOM中为R

引起事件的元素/对象

returnValue

--

Boolean

R/W

设置为false时可取消事件的默认行为

--

preventDefault()

Function

N/A

可以调用该方法来阻止事件的默认行为

  1. 事件类型
    (1)鼠标事件

事件名称

说明

click

单击鼠标左键时触发

dbclick

双击鼠标左键时触发
*双击事件在不同浏览器中的触发顺序:
1)标准DOM:mousedown→mouseup→click→mousedown→mouseup 
              →click→dbclick

2)IE:mousedown→mouseup→click→mouseup→dbclick

mousedown

单击任意一个鼠标按键时触发

mouseout

鼠标指针在某个元素上,移除该元素边界时触发

mouseover

鼠标指针移到另一个元素上时触发

mouseup

松开鼠标任意一个按键时触发

mousemove

鼠标指针在某个元素上移动时持续触发

 

鼠标事件常用属性和方法

IE

标准DOM

类型

可读/可写

说明

button

button

Integer

R/W

鼠标事件,值对应按下的鼠标键

--

detail

Integer

R

鼠标按键被单击的次数

cancelBubble

cancelBubble

Boolean

IE中R/W,标准DOM中为R

IE中设置为 true可取消事件向上冒泡,标准DOM中只读

--

stopPropagation()

Function

N/A

可以调用该方法来阻止事件向上冒泡

clientX

clientX

Integer

IE中R/W,标准DOM中为R

鼠标指针在客户端区域的坐标,不包括工具栏、滚动条等

clientY

clientY

screenX

screenX

Integer

IE中R/W,标准DOM中为R

鼠标指针相对于整个计算机屏幕的坐标值

screenY

screenY

fromElement

relatedTarget

Element

IE中R/W,标准DOM中为R

鼠标指针所离开的元素

toElement

relatedTarget

Element

IE中R/W,标准DOM中为R

鼠标指针正进入的元素

附: button属性及不同浏览器中的键值
1)IE中:未按下按键=0,左键=1,右键=2,同时按下左、右键=3,中键(滑轮)=4
         同时按下左、中键=5,同时按下右、中键=6,同时按下左、中、右键=7
2)FF中:未按下按键=undefined,左键=0,中键(滑轮)=1,右键=2
(2)键盘事件

事件名称

说明

keydown

按下键盘上某个按键时触发,一直按住某键则会持续触发

keypress

按下某个按键并产生字符时触发,即忽略Shift、Alt、Ctrl等功能键

keyup

释放某个按键时触发

 

按键事件常用属性和方法

IE

标准DOM

类型

可读/可写

说明

altKey

altKey

Boolean

R/W

按下Alt键则为true,否则为false

ctrlKey

ctrlKey

Boolean

R/W

按下Ctrl键则为true,否则为false

shiftKey

shiftKey

Boolean

R/W

按下Shift键则为true,否则为false

--

charCode

Integer

R

按下按键的Unicode值

keyCode

keyCode

Integer

R/W

IE中keypress事件表示按下按键的Unicode值,keydown/keyup事件为按键的数字代号。标准DOM中keypress时为0,其余为按下按键的数字代号。

【注】keyCode和charCode属性
1)keyCode在IE和标准DOM浏览器中的keydown/keyup事件相同
2)keyCode在IE的keypress事件中等同于标准DOM浏览器中的charCode
3)兼容方法:oEvent.charCode=(oEvent.type==”keypress”)?oEvent.keyCode:0;
4)只有keypress事件的charCode能够很好地区分字母大小写
(3)HTML事件

事件名称

说明

load

页面完全加载后在window对象上触发,图片加载完成后在其上触发

unload

页面完全卸载后在window对象上触发,图片卸载完成后在其上触发

error

脚本出错时在window对象上触发,图像无法载入时在其上触发

select

选择了文本框的一个或多个字符时触发

change

文本框失去焦点时,并且在它获取焦点后内容发生过改变时触发

submit

单击“提交”按钮时在表单form上触发

focus

任何元素或窗口获得焦点时触发

Blur

任何元素或窗口失去焦点时触发

 

posted on 2010-01-03 14:55  shuz  阅读(540)  评论(0编辑  收藏  举报

导航