详解javascript跨浏览器事件处理程序

2019-12-17教程大全277389

本文为大家分享了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>

以上就是本文的全部内容,希望对大家的学习有所帮助。

您可能感兴趣的文章:

  • JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
  • JSP基于dom解析xml实例详解
  • JavaScript对HTML DOM使用EventListener进行操作
  • JavaScript简单遍历DOM对象所有属性的实现方法
  • JavaScript实现为指定对象添加多个事件处理程序的方法
  • 轻松创建nodejs服务器(5):事件处理程序
  • JS注册/移除事件处理程序(ExtJS应用程序设计实战)
  • 浅谈Javascript事件处理程序的几种方式
  • js使用函数绑定技术改变事件处理程序的作用域
  • JavaScript事件处理程序(事件侦听器)
  • JavaScript Event学习第三章 早期的事件处理程序
  • JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
本文地址:https://www.ufcn.cn/it/247173.html

如非特殊说明,本站内容均来自于网友自主分享,概不代表本站观点,如有任何问题我们都将在收到反馈后的第一时间进行处理!