zoukankan      html  css  js  c++  java
  • 3.点击按钮,盒子显示,点击页面任何一个地方,盒子隐藏(阻止事件的冒泡,原生js)

    <body>
        <!-- 需求:点击按钮,盒子显示,点击页面任何一个地方,盒子隐藏 -->
        <button>点击</button>
        <div class="box">1</div>
    </body>
    <style>
          .box{
               100px;
              height: 100px;
              background-color: brown;
          }  
    </style>
    <script>
        var btn = document.getElementsByTagName('button')[0]
        var box = document.getElementsByClassName('box')[0]
        /*想象中的实现方法(不能实现,因为事件有默认冒泡行为,当点击btn的时候,事件会冒泡到document上,所以只会隐藏,不会显示了)
        btn.onclick=function(ev){
            box.style.display = 'block'
        }
        document.onclick=function(ev){
           box.style.display = 'none'
        }*/


        // 所以要阻止btn的冒泡行为
        // 如果要处理浏览器的兼容问题的话,封装一个函数阻止冒泡行为
        function stopP(ev){
            if(ev.stopPropagation){
                ev.stopPropagation() //标准浏览器
            }else{
                ev.cancelBubble = true //IE8及以下
            }
        }
        btn.onclick=function(ev){
            box.style.display = 'block'
            var ev = ev||event   //事件对象(IE和谷歌:是全局的event对象;火狐:是事件函数的第一个参数)
            stopP(ev)
        }
        document.onclick=function(ev){
           box.style.display = 'none'
        }
    </script>
  • 相关阅读:
    获取SQLSERVER所有库 所有表 所有列 所有字段信息
    无法嵌入互操作类型,请改用适用的接口 的解决方法
    注册Com组件..
    IIS站点无法访问..点浏览IIS窗口直接关掉
    数据库日志文件的收缩
    由于目标机器积极拒绝,无法连接。
    Log4Net使用方法
    WindowsService 创建.安装.部署
    蓝桥杯题库基础练习字母图形
    修改IDEA默认模板
  • 原文地址:https://www.cnblogs.com/lige1234/p/14371488.html
Copyright © 2011-2022 走看看