事件监听的几个要点

来源:互联网 发布:2016詹姆斯总决赛数据 编辑:程序博客网 时间:2024/05/22 01:54

1:事件主要分为冒泡型事件捕获型事件,IE浏览器目前仅支持冒泡型事件.

2:事件的几种写法:

1、onlick -->事件冒泡,重写onlick会覆盖之前属性,没有兼容性问题
ele.onclik = null;   //解绑单击事件,将onlick属性设为null即可


2、addEventListener(event.type, handle, boolean); IE8及以下不支持,属于DOM2级的方法,可添加多个方法不被覆盖

//事件类型没有on,false 表示在事件第三阶段(冒泡)触发,true表示在事件第一阶段(捕获)触发。 如果handle是同一个方法,只执行一次。ele.addEventListener('click', function(){ }, false);    //括号内的参数为(事件 , 触发事件后调用的函数名 , false<冒泡>/true<捕获>)//解绑事件,参数和绑定一样ele.removeEventListener(event.type, handle, boolean);


3、attachEvent(event.type, handle ); IE特有,兼容IE8及以下,可添加多个事件处理程序,只支持冒泡阶段

//如果handle是同一个方法,绑定几次执行几次,这点和addEventListener不同,事件类型要加on,例如onclick而不是clickele.attachEvent('onclick', function(){ }); //解绑事件,参数和绑定一样ele.detachEvent("onclick", function(){ });3、attachEvent(event.type, handle ); IE特有,兼容IE8及以下,可添加多个事件处理程序,只支持冒泡阶段

怎样解决浏览器兼容性问题?

>>>>>>绑定事件:
function addEvent(element, eType, handle, bol) {    if(element.addEventListener){           //如果支持addEventListener        element.addEventListener(eType, handle, bol);    }else if(element.attachEvent){          //如果支持attachEvent        element.attachEvent("on"+eType, handle);    }else{                                  //否则使用兼容的onclick绑定        element["on"+eType] = handle;    }}
>>>>>>事件解绑:
function removeEvent(element, eType, handle, bol) { if(element.addEventListener){ element.removeEventListener(eType, handle, bol); }else if(element.attachEvent){ element.detachEvent("on"+eType, handle); }else{ element["on"+eType] = null; }}

原创粉丝点击