JavaScript事件

来源:互联网 发布:js 获取元素宽度 编辑:程序博客网 时间:2024/04/29 02:46

JavaScript事件分类:

1、捕获型(IE不支持)(从DOM结构的最顶端开始向下延伸)

2、冒泡型(从DOM结构的最低端向上一级级延伸)

【IE7以上可以给‘html’添加onclick事件,IE中body->html,火狐中html->body】

 

JavaScript添加事件监听:

1、IE:

[object].attachEvent("event_handler", fnHandler);
[object].detachEvent("event_handler", fnHandler);

 

当添加多个事件监听函数时,后添加的先调用,但并非严格上的先后顺序。

 

2、标准DOM的监听方法

[object].addEventListener("event_name", fnHandler, bCapture);
[object].removeEventListener("event_name", fnHandler, bCapture);

 

当添加多个事件监听函数时,先添加的先调用,而且严格按先后顺序执行。

 

JavaScript事件对象

在IE 浏览器中事件对象是window 对象的一个属性event,访问时通常采用如下方法。
oP.onclick = function(){
var oEvent = window.event;
}
尽管它是window 对象的属性,但event 对象还是只能在事件发生时被访问,所有的事件处理函数执行完之后,该对象就消失了。

 

而标准的DOM 中规定event 对象必须作为惟一的参数传给事件处理函数,因此在类似Firefox 浏览器中访问事件对象通常将其作为参数,代码如下:
oP.onclick = function(oEvent){
}
因此为了兼容两种浏览器,通常采用下面的方法。
oP.onclick = function(oEvent){
if(window.event) oEvent = window.event;
}