zoukankan      html  css  js  c++  java
  • div 嵌套 事件穿透

    当多个div嵌套时候,点击最里层的div,会调用外层div的事件。如果我们要实现点击div,只是调用当前div的事件,闲话不说,贴出代码

     
    <html>
    <head>
        <title></title>

        <script language="javascript" type="text/javascript">
            function BigDiv(event) {
                alert("Big");

                if (event.stopPropagation)
                {
                    event.stopPropagation();//在基于firefox内核的浏览器中支持做法stopPropagation
                }
                else 
                {
                    event.cancelBubble = true;//基于ie的写法
                }

            }
            function LittleDiv() {
                alert("little");
                event.cancelBubble = true;
                }
            function yy() {
                alert("sb");
            }
        </script>

    </head>
    <body>
        <form id="form1" runat="server">
        <div id ="fdk1" onclick="yy()">
            YY
            <!--此处会调用yy()事件-->
            <div id="child2" onclick="BigDiv(event)">
                大div
                <!--加event.cancelBubble=true",只调用当前div的事件,禁止事件的浮生-->
                <div onclick="LittleDiv();">
                    小div</div>
            </div>
        </div>
        </form>
    </body>
    </html>

    ie里两个div重叠时的事件穿透

    一般的开发者都知道ie6,7,8中如果两个div有层叠关系,上层的div背景透明,且没有内容,那么下层div在某些情况下就可以响应点击在上层的事件,也就是说,上层的div被穿透了. 
        
        一般来说,下层div可以响应点击的区域如下: 
        1,如果下层div有边框的话,边框可以响应点击 
        2,背景图和背景色都不能响应点击 
        3,内容可以响应点击,比如文本,图片等 


        另外:再有一种情况,如果外层div有click事件,点击上层div,这时有以下几种情况: 
        1,如果点击的下层div没有背景,这时候click事件不会响应 
        2,如果点击的下层div有背景,则上层div会响应click事件 
        3,如果点击在下层div的border上或者内容上,则上层div不响应click事件,下层div的click被触发

      <html>

      <body>

       <div id="Div1" onclick="alert(11)"> 

       <!--<img src=mask.gif style="100%;height:100%;position:absolute" />    

       <div id="Div4"></div>

       </div> 

       <div id="Div0" onclick="alert(22)"></div>

        </body>

      </html>

  • 相关阅读:
    libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
    Redis开启远程访问
    Centos7.5 防火墙设置
    Redis和MemCache的区别
    Redis的事务
    Redis持久化——AOF
    Redis持久化——RDB快照
    Redis配置文件介绍
    Redis常见操作命令
    Redis的五大数据类型
  • 原文地址:https://www.cnblogs.com/zhaoxd/p/2986640.html
Copyright © 2011-2022 走看看