首页 > 其他 > 详细

Event对象跨浏览器兼容性写法

时间:2019-12-29 14:07:04      阅读:79      评论:0      收藏:0      [点我收藏+]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Event对象跨浏览器兼容性写法</title>
</head>
<body>
    <script>
        var EventUtil={
            //添加事件
            addHandler:function(element,type,handler){
                if (element.addEventListener){
                    element.addEventListener(type,handler,false);
                }else if(element.attachEvent){
                    element.attachEvent("on"+type,handler);
                }else{
                    element["on"+type]=handler;
                }
            },
            //移除事件
            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]=handler;
                }
            },
            //获取事件本身
            getTarget:function (){
                return event.target || event.srcElement;
            },
            //阻止默认行为
            preventDefault:function (){
                if(event.preventDefault){
                    event.preventDefault();
                }else{
                    event.returnValue=false;
                }
            },
            //取消冒泡和捕获
            stopPropagation:function (){
                if(event.stopPropagation){
                    event.stopPropagation();
                }else{
                    event.cancelBubble=true;
                }
            }
        }
    </script>
    <!-- 测试 -->
    <div id="div">
        爸爸
        <button id="btn">儿子</button>
    </div>
    <a id="a" href="https://www.baidu.com/">百度</a>
    <script>
        var div=document.getElementById("div");
        var btn=document.getElementById("btn");
        EventUtil.addHandler(div,"click",function(){
            console.log("我是老子");
            console.log(EventUtil.getTarget(event));//获取target
        })
        EventUtil.addHandler(btn,"click",function(){
            console.log("我是儿子");
            EventUtil.stopPropagation();//阻止了冒泡
        })
        var a=document.getElementById("a");
        EventUtil.addHandler(a,"click",function(){
            console.log("我是链接");
            EventUtil.preventDefault();//阻止默认行为
        })
    </script>
</body>
</html>

Event对象跨浏览器兼容性写法

原文:https://www.cnblogs.com/vinson-blog/p/12114809.html

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