zoukankan      html  css  js  c++  java
  • addEvent和removeEvent优化写法

    ;(function(){
        /**
         * 初始化分支是一种优化模式,当知道某个条件在整个生命周期内都不会发生变化时,仅对该条件测试一次。
         */
        
        // 一般写法
        var util = {
            addEvent: function(el, type, fn) {
                if(window.addEventListener{
                    el.addEventListener(type, fn, false)
                }else if(document.attachEvent) {
                    el.attachEvent('on' + type, fn);
                }else{
                    el['on' + type] = fn;
                }
            },
            removeEvent: function() {
                // 类似addEvent
            }
        }
    
        // 优化写法。先定义接口,再实现借口,达到了只需验证一次的目的
        var util = {
            addEvent: null,
            removeEvent: null
        };
        if(window.addEventListener) {
            util.addEvent = function(el, type, fn) {
                el.addEventListener(type, fn, false)
            };
            util.removeEvent = function(el, type, fn) {
                el.removeEventListener(type, fn, false)
            }
        } else if(document.attachEvent) {
            util.addEvent = function(el, type, fn) {
                el.attachEvent('on' + type, fn)
            };
            util.removeEvent = function(el, type, fn) {
                el.detachEvent('on' + type, fn)
            }
        } else {
            util.addEvent = function(el, type, fn) {
                el['on' + type] = fn;
            };
            util.removeEvent = function(el, type, fn) {
                el['on' + type] = null;
            }
        }
    }());
  • 相关阅读:
    Ruby窗口程序
    RubyWin32Api Win32OLE
    Ruby网络服务
    Ruby 文件处理
    Ruby基础数据类型
    Ruby基础类型,动态特性,代码块
    Ruby类,模块1
    Ruby准备工作
    js变量作用域
    ExecuteStoreQuery
  • 原文地址:https://www.cnblogs.com/qianduanjingying/p/5531913.html
Copyright © 2011-2022 走看看