本文为大家分享了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>
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/22763
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我