首页 > Web开发 > 详细

公共事件处理函数js库

时间:2015-05-10 21:54:59      阅读:198      评论:0      收藏:0      [点我收藏+]
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;
                }
            }
        };

 

公共事件处理函数js库

原文:http://www.cnblogs.com/liyunhua/p/4491883.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!