前言
Javascript和HTML之间的交互是通过用户和浏览器操作页面时引发的事件(event)来处理的.
DOM事件流:
DOM同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生.两种事件流会触及DOM中的所有对象,从document对象开始,也在document对象结束.
DOM事件模型最独特的性质是,文本节点也触发事件(IE不会).
如果要对兼容DOM标准的浏览器进行开发,这是非常重要的一个概念,忘记文本节点也会触发DOM中的事件,是使在较新的浏览器上进行开发的人员头疼的头号原因.
事件处理函数/监听函数.
事件是用户或浏览器自身进行的特定行为,这些事件都有自己的名字,如Click(点击),load(载入),mouseover(鼠标经过).用于响应某个事件而调用的函数称为事件处理函数(event handler).或者DOM称为事件监听函数.我们一般认为响应点击事件的函数是onclick事件处理函数
在IE中,每个元素和window对象都有两个方法.attachEvent()和detachEvent().
attachEvent()用来给一个事件附加事件处理函数.
detachEvent()用来将事件处理函数分离出来.每个方法都有两个参数:要分配的事件处理函数的名字.
oDiv.attachEvent("onclick",fnClick); //add the event handler
oDiv.detachEvent("onclick",fnClick);//remove the event handler
DOM:
DOM方法addEventListener()和removeEvetListener()用来分配和移除事件处理函数.需要三个参数:事件名称,要分配的函数和处理函数是用于冒泡阶段还是捕获阶段.如果事件处理函数是用于捕获阶段,第三个参数为true,用于冒泡阶段,则为false.
事件对象
引起事件的对象
事件发生时鼠标的信息
事件发生时键盘的信息
事件对象只在发生事件时,才被创建,且只有事件处理函数才能访问.所有事件处理函数执行完毕后,事件对象就被销毁.
var oEvent = window.event;
检测事件类型
oEvent.type;
获取按键代码
oEvent.keyCode;
检测shift,Alt,Ctrl键.
oEvent.altKey; oEvent.shiftKey; oEvent.ctrlkey;
获取客户端坐标
oEvent.clientx; oEvent.clientY.
获取屏幕坐标
oEvent. screenX; oEvent.screenY.