原生dom事件注册和移除事件的封装

复制代码
var addEvent = (function() {
    var setListener;
    setListener = false;
    return function(el, ev, fn) {
      if (!setListener) {
        if (el.addEventListener) {
          setListener = function(el, ev, fn) {
            return el.addEventListener(ev, fn, false);
          };
        } else if (el.attachEvent) {
          setListener = function(el, ev, fn) {
            return el.attachEvent(ev, fn, false);
          };
        } else {
          setListener = function(el, ev, fn) {
            return el['on' + ev] = fn;
          };
        }
      }
      return setListener(el, ev, fn);
    };
  })();

  var fireEvent = function(element, event) {
    var evt;

    if (doc.createEventObject) {
      return element.fireEvent('on' + event, evt);
    } else {
      evt = document.createEvent('HTMLEvents');
      evt.initEvent(event, true, true);
      return !element.dispatchEvent(evt);
    }
  };
复制代码

 

posted @ 2017-05-26 11:54  飘然离去  阅读(461)  评论(0)    收藏  举报
编辑推荐:
· 复杂业务系统线上问题排查过程
· 通过抓包,深入揭秘MCP协议底层通信
· 记一次.NET MAUI项目中绑定Android库实现硬件控制的开发经历
· 糊涂啊!这个需求居然没想到用时间轮来解决
· 浅谈为什么我讨厌分布式事务
阅读排行:
· 为大模型 MCP Code Interpreter 而生:C# Runner 开源发布
· Coze Studio:字节跳动 Coze 的开源版本来了!第一时间深度解析
· 面试时该如何做好自我介绍呢?附带介绍样板示例!!!
· 复杂业务系统线上问题排查过程
· 本可避免的P1事故:Nginx变更导致网关请求均响应400
点击右上角即可分享
微信分享提示