• 公共事件处理函数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;
                    }
                }
            };

    作者:静逸
    出处:http://www.cnblogs.com/liyunhua
    本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
    如果您觉得本篇博文对您有所收获,觉得小女子还算用心,请点击右下角的 [推荐],谢谢!

  • 相关阅读:
    访问oss压缩文件失败
    uniapp项目再使用vue-cli启动压缩失败
    航天丰益面试题
    axios上传图片遇见问题
    formateDate
    mongoose中Documents的save方法
    腾讯云nginx配置https
    filter逻辑bug
    vue-infinite-loading 过滤器tab正确使用
    使用pem连接服务器
  • 原文地址:https://www.cnblogs.com/liyunhua/p/4491883.html
Copyright © 2020-2023  润新知