我是靠谱客的博主 彩色太阳,最近开发中收集的这篇文章主要介绍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" οnclick="yy()">
        YY
        <!--此处会调用yy()事件-->
        <div id="child2" οnclick="BigDiv(event)">
            大div
            <!--加event.cancelBubble=true",只调用当前div的事件,禁止事件的浮生-->
            <div οnclick="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="width:100%;height:100%;position:absolute" />    

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

   </div> 

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

    </body>

  </html>

转载于:https://www.cnblogs.com/zhaoxd/archive/2013/03/28/2986640.html

最后

以上就是彩色太阳为你收集整理的div 嵌套 事件穿透的全部内容,希望文章能够帮你解决div 嵌套 事件穿透所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部