js 添加事件兼容性

Posted lunawzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 添加事件兼容性相关的知识,希望对你有一定的参考价值。

        var tools = {
            //添加事件
            addHandle: function (e, type, handle) {
                if (e.addEventListener) {
                    e.addEventListener(type, handle, false);
                } else if (e.attachEvent) {
                    e.attachEvent("on" + type, handle);
                }
                else {
                    e["on" + type] = handle;
                }
            },
            //删除事件
            removeHandle: function (e, type, handle) {
                if (e.addEventListener) {
                    e.removeEventListener(type, handle, false);
                } else if (e.attachEvent) {
                    e.detachEvent("on" + type, handle);
                }
                else {
                    e["on" + type] = null;
                }
            },
            //得到对象
            getEvent: function (event) {
                return event || window.event;
            },
            //得到元素
            getElement:function(event){
                return event.target||event.srcElement;
            },
            //阻止冒泡
            stopPropagation: function (event) {
                if (event.stopPropagation) {
                    event.stopPropagation();
                } else {
                    event.cancelBubble = true;
                }
            },
            //阻止默认行为
            preventDefault: function (event) {
                if (event.preventDefault) {
                    event.preventDefault();
                } else {
                    event.returnValue = false;
                }
            }
        }

        var btn = document.getElementById("btn");
        var box = document.getElementById("box");
        var ha = document.getElementById("ha");

        tools.addHandle(ha, "click", function (e) {
            e = tools.getEvent(e);
            tools.preventDefault(e);
            tools.stopPropagation(e);
        })

 

以上是关于js 添加事件兼容性的主要内容,如果未能解决你的问题,请参考以下文章

js学习总结----DOM2兼容处理重复问题

封装addEventListener,removeEventListener指定元素添加事件及兼容问题js

封装addEventListener,removeEventListener指定元素添加事件及兼容问题js

JS常用事件兼容性处理方法

原生js如何绑定a连接点击事件?

js 不同浏览器兼容性(转)