本文为大家分享了javascript跨浏览器事件处理机制,供大家参考,具体内容如下
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>跨浏览器的事件处理程序</title>
</head>
<body>
<input type="button" value="click me" id="myBtn"/>
<input type="button" value="解除" id="unlisten"/>
<script>
function $(id){
return document.getElementById(id);
}
var EventUtil={
fnCount:0
,fnData:{}
,addHandler:function(element,type,handler){
this.fnCount++;
handler.fid = this.fnCount;
var _fn = handler;
handler = function(){
_fn.call(element);
};
this.fnData[this.fnCount] = 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){
handler = this.fnData[handler.fid];
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent("on"+type,handler);
}else{
element["on"+type]=null;
}
}
}
var btn=$("myBtn");
var unbtn = $('unlisten');
var bindFn1=function(){
alert(this.id);
};
var bindFn2=function(){
alert('2');
};
EventUtil.addHandler(btn,"click",bindFn1);
EventUtil.addHandler(btn,"click",bindFn2);
//EventUtil.removeHandler(btn,"click",bindFn1);
EventUtil.addHandler(unbtn,"click",function(){
EventUtil.removeHandler(btn,"click",bindFn1);
});
</script>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“详解javascript跨浏览器事件处理程序”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。