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


    <!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>
  • 相关阅读:
    database join
    图像超分辨率重建
    信号处理
    将博客搬至CSDN
    Openstack
    nginx的优化
    CentOS系统的优化
    zabbix服务端客户端部署
    MySQL优化必须调整的10项配置
    TCP三次握手
  • 原文地址:https://www.cnblogs.com/vinson-blog/p/12114809.html
Copyright © 2020-2023  润新知