zoukankan      html  css  js  c++  java
  • JavaScript阻止事件冒泡

    今天在自学敲代码的时候发现了一个问题,当时的例子如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <style>
        #div1{
            height: 200px;
             200px;
            background-color: #3b7796;
        }
        #btn{
            margin: 50px;
        }
    </style>
    <script>
        function fn1(){
            alert("this is div");
        }
    
        function fn2(){
            alert("this is btn");
        }
    </script>
    <body>
        <div id="div1" onclick="fn1();">
            <button id="btn" onclick="fn2();">btn</button>
        </div>
    </body>
    </html>

    在我点击 btn 之后,会触发div上的点击事件,就会看到2个提醒框。

    这个原因就是因为事件冒泡造成的,修改代码

        function fn2(e){
    
            //这里做浏览器兼容,如果提供了event 就说明他不是IE
            if(e &&  e.stopPropagation){
                e.stopPropagation();
            }else {
                //IE方式处理事件冒泡
                window.event.cancelBubble = true;
            }
    
    
            alert("this is btn");
        }


    这样就阻止了事件冒泡。

  • 相关阅读:
    PHP session
    PHP范例注册审核
    php文件操作
    JSON 弹窗
    PDO
    CSP-S2020 游记
    Meissel-Lehmer算法 学习笔记
    [AGC046C] Shift 题解
    Min_25筛学习笔记
    GDOI2020 游记
  • 原文地址:https://www.cnblogs.com/laobeiV5/p/5106640.html
Copyright © 2011-2022 走看看