zoukankan      html  css  js  c++  java
  • 公共事件处理函数js库

    var EventUtil = {
    /*
    *添加事件处理 参数:元素对象 事件类型 处理函数
    */
    addHandle: function (element, type, handle) {
    //dom2级的事件添加
    if (element.addEventListener) {
    element.addEventListener(type, handle, false);
    } else {
    //IE 的事件添加
    if (element.attachEvent) {
    element.attachEvent('on' + type, handle);
    } else {
    //给元素特性赋值
    element['on' + type] = handle;
    }
    }

    },
    /*
    *移除事件处理 参数:元素对象 事件类型 处理函数
    */
    removeHandle: function (element, type, handle) {
    //dom2级的事件移除
    if (element.removeEventListener) {
    element.removeEventListener(type, handle, false);
    } else {
    //IE的事件移除
    if (element.detachEvent) {
    element.detachEvent('on' + type, handle);
    } else {
    //给元素特性赋值为空对象以移除事件
    element['on' + type] = null;
    }
    }
    },
    //获得event对象 IE中以参数event对象传入 Dom中通过window.event来访问
    getEvent: function (event) {
    return event ? event : window.event;
    },
    //获得事件的目标 dom中通过event.target获得 IE中通过event.srcElement
    getTarget: function (event) {
    return event.target || event.srcElement;
    },
    //取消事件的默认行为
    preventDefault: function (event) {
    if (event.preventDefault) {
    //Dom 方法
    event.preventDefault();
    } else {
    //设置IE event.returnValue = false
    event.returnValue = false;
    }
    },
    //停止事件冒泡
    stopPropagation: function (event) {
    //Dom 方法
    if (event.stopPropagation) {
    event.stopPropagation();
    } else {
    event.cancelBubble = true; ;
    }
    },
    //获得相关目标对象
    getRelatedTarget: function (event) {
    //Dom 方法 relatedTarget只对mouseover和mouseout事件才包含值 否则 这个值为null
    if (event.relatedTarget) {
    return event.relatedTarget;
    } else {
    //IE
    if (event.toElement) {
    return event.toElement;
    } else {
    if (event.fromElement) {
    return event.fromElement;
    } else {
    return null;
    }
    }
    }
    },
    //获得鼠标按键 0表示左键 1表示中间轮 2表示右键
    getButton: function (event) {
    //是否支持Dom鼠标事件
    if (document.implementation.hasFeature('MouseEvents', '2.0')) {
    return event.button;
    } else {
    switch (event.button) {
    case 0:
    case 1:
    case 3:
    case 5:
    case 7:
    return 0;
    case 2:
    case 6:
    return 2;
    case 4: return 1;
    }
    }
    },
    //获得字符编码
    getCharCode: function (event) {
    if (typeof event.charCode == 'number') {
    return event.charCode;
    } else {
    return event.keyCode;
    }
    }
    };

  • 相关阅读:
    死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁
    死磕 java同步系列之AQS起篇
    死磕 java同步系列之自己动手写一个锁Lock
    死磕 java同步系列之synchronized解析
    死磕 java同步系列之volatile解析
    死磕 java同步系列之JMM(Java Memory Model)
    解决Linux下SSH超时自动断开
    Git常用命令
    JVM常用虚拟机命令汇总
    理解GC日志
  • 原文地址:https://www.cnblogs.com/ctriphire/p/2914682.html
Copyright © 2011-2022 走看看