关于对跨浏览器实现的事件处理程序
今天上网看了许多关于js的dom事件的内容。其中呢,对于跨浏览器实现的事件处理程序的封装方法很感兴趣。主要呢就是对于ie和其他主流的浏览器的差别。
var eventUtil = {
//添加dom事件处理程序
//添加的属性
addHandler:function(element,type,handler){
if (element.addEventListener) {
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent('on'+type,handler);
}else{
element['on'+type]=handler;
}
},
//删除dom事件处理程序
removeHandler:function(element,type,handler){
if(element.removerEventListener){
element.removerEventListener(type,handler,false);
}else if (element.detachEvent) {
element.detachEvent('on'+type,handler);
}else{
element['on'+type]=null;
}
}
}关于其中的element['on'+type]是因为element.后无法与字符串连接。而element[]等价于element.
关于是否加on,是因为ie的事件处理程序与别的浏览器不同导致。事件的type有的是dom2级中是click而由于ie8之前不兼容dom2级事件处理,则需要用type为onclick的ie时间处理程序。
相关推荐
Kakoola 2020-08-01
bearhoopIT之道 2020-08-16
凯哥Java 2020-07-04
haidaoxianzi 2020-07-04
delmarks 2020-06-28
aNian 2020-06-16
qingjiuquan 2020-06-07
fraternityjava 2020-06-04
明瞳 2020-06-04
HappyHeng 2020-05-28
88473166 2020-05-14
zkwgpp 2020-05-07
oXiaoChong 2020-05-07
ChainDestiny 2020-05-07
doomvsjing 2020-05-07
xuMelon 2020-05-04
MrLiar 2020-04-27