• js跨浏览器事件处理


    var EventUtil = {
    
        addHandler: function(element,type,handler){
            if(element.addEventListener){
                element.addEventListener(type,handler,false);   //添加DOM2事件
            }else if(element.attachEvent){
                element.attachEvent("on"+type,handler);         //添加IE事件
            }else{
                element["on"+type] = handler;                    //添加DOM0事件
            }
        },
        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;
            }
        },
        getEvent : function(event){
            return event ? event : window.event;  //在使用DOM0级事件中中event作为window对象的一个属性存在
        },
        getTarget : function(event){
            return event.target || event.srcElement;  //IE中取得event.srcElement
        },
        preventDefault : function(event){
            if(event.preventDefault){
                event.preventDefault();
            }else{
                event.returnValue = false;  //IE中阻止默认事件
            }
        },
        stopPropagation : function(event){
            if(event.stopPropagation){
                event.stopPropagation();
            }else{
                event.cancelBubble = true;   //IE取消事件冒泡
            }
        }
    }


    addHandler()视情况分别为DOM0级方法、DOM2级方法或IE方法来添加事件。

    removHandler()则是移除事件。

    注:DOM0级对每个事件只支持一个事件处理程序。

    EventUtil的使用例子,如下

    window.onload = function(){
        var btn = document.getElementById("btn");
        EventUtil.addHandler(btn,"click",demo);
        //EventUtil.removeHandler(btn,"click",demo)
        function demo(){
            alert("ckicked !");
        }
    }
  • 相关阅读:
    python--进程
    python---多线程
    python--上下文管理器
    python中的单例模式
    装饰器
    匿名函数
    python的内置方法
    命名元组
    如何管理我们的项目环境
    启动APP遇到“UiAutomator exited unexpectedly with code 0, signal null”解决
  • 原文地址:https://www.cnblogs.com/scnuwangjie/p/4918321.html
Copyright © 2020-2023  润新知