时间:2021-05-25
本文为大家分享了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>以上就是本文的全部内容,希望对大家的学习有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
将DOM0级事件处理程序和DOM2级事件处理程序IE事件处理程序封装为eventUtil对象,达到跨浏览器的效果。代码如下:vareventUtil={//添加
JavaScript技术优化。由于JavaScript在Web前端发挥用户交互、事件处理等功能,主要对浏览器事件产生的响应进行处理,或者对访客浏览器信息进行检测
在今天的网络浏览器处理事件是有点困难的一部分,不同的浏览器以不同的方式处理事件。因此,要克服这些跨浏览器的问题,人们可以利用jQuery的事件处理API。jQu
js实现一些跨浏览器的事件方法 用JavaScript实现事件的绑定,移除,以及一些常用的事件属性的获取,时常要考虑到在不同浏览器下的兼容性,下面给出了一个跨
跨浏览器基础事件复制代码代码如下://跨浏览器添加事件functionaddEvent(obj,type,fn){if(obj.addEventListener