原生js,跨浏览器兼容是件很蛋疼的事情!
跨浏览器的事件处理程序,源码:
var btn=document.getElementById("touch");
var btn2=document.getElementById("test");
function handler(){
alert("响应点击事件!");
}
//直接拷段下面这段代码
var EventUtil={
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;
}
},
removeHandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent("on"+type,handler);
}else{
element["on"+type]=null;
}
//alert("成功解绑事件!");
}
}
EventUtil.addHandler(btn,"click",handler);
btn2.οnclick=function(){
EventUtil.removeHandler(btn,"click",handler);
}
提示:你可以先修改部分代码再运行。
绑定事件,浏览器之间的实现方法各异,上述代码使用函数表达式方式将浏览器的事件处理程序作了个统一接口格式定义!试想下不这样定义,每次都手打这段代码出来,这过程来多几次,估计想死的心都有了,哈..... 下次遇到,相信你会很乐意ctrl+c & ctrl+v !