• js时间冒泡,阻止事件冒泡


    首先解释一下事件冒泡神什么,

    在js中,假如在div中嵌套一个div

    <style type="text/css">
        #box1{width:500px;height:500px;background:#900;}
         #box2{width:400px;height:400px;background:#090;}
          #box3{width:300px;height:300px;background:#009;}
           #box4{width:200px;height:200px;background:#990;}
            #box5{width:100px;height:100px;background:#099;}
    </style>
    
    <body>
    <div id="box1">
        <div id="box2">
           <div id="box3">
                    <div id="box4">
                           <div id="box5">
                           </div>
                    </div>
           </div>
        </div>
    </div>
        
    </body>

    当你用onclick事件时,当你点击id=‘box4’的div,事件会一直传递到box3,box2,box1,html

    这就叫事件的冒泡,有时候不需要冒泡,所以会阻止冒泡。

    <script>
        window.onload =function()
        {
            var $=function(_id){return document.getElementById(_id);}
            document.onclick=function()
            {
                alert("点击的document");
            }
            document.body.onclick=function()
            {
                 alert("点击的body");
            }
            $("box1").onclick=function()
            {
                alert("你点击的id为:"+this.id +"的div");
            }
             $("box2").onclick=function()
            {
                alert("你点击的id为:"+this.id +"的div");
            }
             $("box3").onclick=function(e)
            {
                e=window.event || e;  //IE支持的是windows事件,而标准e事件是chromo额firefox支持
                e.stopPropagation();  //阻止冒泡的方法,而ie不支持這个方法,但支持cancelBubble属性
                alert("你点击的id为:"+this.id +"的div");
            }
             $("box4").onclick=function(e)
            {
                //全浏览器兼容的阻止冒泡
                e=e ||window.event ;
                e.stopPropagation?(stopPropagation()):(e.cancelBubble=true);
                alert("你点击的id为:"+this.id +"的div");
              
            }
             $("box5").onclick=function()
            {
                alert("你点击的id为:"+this.id +"的div");
            }
        }   
     </script>

    firefox,chrome中用的是

    stopPropagation()函数来阻止冒泡

    ie用的是cancelBubble=ture;這个属性来阻止冒泡

  • 相关阅读:
    EL+Serilog日志
    HttpClientFactory-向外请求的最佳
    Autofac依赖注入
    .Net Core MemoryCache
    时间复杂度和空间复杂度
    中间件-异常处理
    依赖注入-1
    使用并发集合
    安卓刷机&root
    Mac Android Studio 常用快捷键大全
  • 原文地址:https://www.cnblogs.com/biyongyao/p/5840549.html
Copyright © 2020-2023  润新知