跨浏览器事件处理

2021-11-08 11:35:29 浏览数 (2)

dom0事件为直接在元素上写方法; dom2事件是通过添加Listener方法来进行函数调用;

代码语言:javascript复制
  var but = document.getElementById('but');
  function view() { alert("value"); }

    var eventUtil = { addHandler:function(element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); }
            else if(element.attachEvent) { element.attachEvent('on' type,handler); }
            else { element['on' type] = handler;
//在JS中[]是可以替换.的
        }
        },
        removeHandler:function(element, type, handler) { if (element.removeEventListener) { element.removeEventListener(type, handler, false); }
            else if(element.detachEvent) { element.detachEvent('on' type,handler); }
            else { element['on' type] = null; 
        }
        }
    }
eventUtil.addHandler(but, 'click', view); 
    <input type="button" id="but" value="Hello"/>

封装了一个名为eventUtil的方法通过调用addHandler方法来实现跨浏览器事件方法; 在JS中[]是可以替换.的

知识点为:IE事件的监听需要添加‘on’关键字,火狐及chrome的事件监听不需要直接写click即可;

0 人点赞