有时候我们会有这种情况,点击按钮(或者指定元素)显示一个菜单栏,点击按钮和菜单栏外的区域隐藏菜单栏;

主要运用阻止事件冒泡来实现;下面是全部代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><style>*{margin: 0;padding: 0;}ul,li{list-style: none;}body{min-height: 1000px}.app{background: rgba(9,9,9,.1);width:200px;margin: 20px auto;text-align: center;padding: 10px;border-radius: 6px;}button{cursor: pointer;}</style><div class="app"><button>点击切换</button><ul><li>内容1</li><li>内容2</li><li>内容3</li></ul></div><script type="text/javascript">//获取相应的dom元素 var app=document.querySelector('.app');var button=document.querySelector('button');var ul=document.querySelector('ul');// 第一步 点击按钮 切换 ul的状态button.addEventListener('click',function(){console.log(ul.style.display)if(ul.style.display=='none'||!ul.style.display){ul.style.display='block'}else{ul.style.display='none'}})// 第二步:点击网页隐藏 uldocument.addEventListener('click',function(){ul.style.display='none'})// 第三步:点击网页会隐藏ul,但是点击按钮不会显示ul,因为事件冒泡的原因,点击按钮也会触发document的点击事件,// 这里需要用到阻止事件冒泡,使得点击app元素内的区域不会触发外层的点击事件app.addEventListener('click',function(event){var e=event||window.event;if(e.cancelBubble){e.cancelBubble=true;//ie 阻止事件冒泡}else{e.stopPropagation();// 其余浏览器 阻止事件冒泡}})</script>
</body>
</html>

js点击元素之外的地方隐藏该元素相关推荐

  1. HTML点击元素以外任意地方隐藏该元素

    HTML点击元素以外任意地方隐藏该元素 原生javascript写法: var scheduleBox = document.querySelector('#schedule-box') docume ...

  2. jquery 点击元素以外任意地方隐藏该元素的方法

    第一先实现点击任何地方都隐藏该元素(假设id="bar") $(document).click(function(){ $("#bar").hide();}); ...

  3. android+点击屏幕隐藏键盘,Android点击EditText文本框之外任何地方隐藏键盘的解决办法...

    1,实现方法一: 通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 android:id="@+id/traceroute ...

  4. jquery实现点击页面其他地方隐藏指定元素

    代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> < ...

  5. jquery实现在元素外单击,隐藏此元素

    实现的思路是 假如在元素A外单击隐藏A 判断被鼠标按下时的元素 的所有父元素中是否包含了A,没有包含则可以知道鼠标是在A之外单击的,则隐藏. 代码如下: $(document).mouseup(fun ...

  6. Android点击EditText文本框之外任何地方隐藏键盘的解决办法

    通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 <LinearLayout xmlns:android="http ...

  7. 点击一个按钮显示div,点击div之外的地方div隐藏,点击div之内的地方div不隐藏

    <input id="btnClick" type="button" value="原生写法" class="btn-gre ...

  8. JS点击DIV以外的地方,隐藏DIV

    document.onclick = function (event) { var e = event || window.event; var elem = e.srcElement||e.targ ...

  9. java selenium用js点击_Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?...

    小编典典 你可以通过以下任一过程解决它们: 1.由于存在JavaScript或AJAX调用而无法单击元素 尝试使用ActionsClass: WebElement element = driver.f ...

最新文章

  1. 美军花大力推动人工智能研发
  2. 骆利群院士最新Science综述:神经环路架构,激发新的AI
  3. Spring创建对象的三种方式以及创建时间
  4. linux stop函数,perfmonctl()函数 Unix/Linux
  5. P3952 时间复杂度(模拟)
  6. 计算机一级考试教学设计,《全国计算机一级考试》教学设计说明.doc
  7. Python+pandas一维数组常用操作
  8. php下载隐藏,php – 隐藏下载URL
  9. 创建虚拟机与安装系统
  10. nodejs之utility,crypto使用
  11. 数据可视化发挥流程的价值——江汽物流数据监控平台建设经验
  12. Iphone 游戏引擎剖析
  13. 浙江大学2022年计算机考研复试一般考什么
  14. 怎么换头像啊。。。。。
  15. 学习Python前序----计算机要点
  16. 负责任的回应:开发Greenbelt网站
  17. 计算机控制系统第二章答案,计算机控制系统习题参考答案--第2章
  18. caffe常用层:Reduction层
  19. ADXL345传感器介绍
  20. 系统重装 VISTA下如何删除EISA分区

热门文章

  1. Hadoop精华问答 | 基于Hadoop的数据中心有什么好处?
  2. 小程序组件获取元素宽高失效 和canvas绘制问题
  3. Linux相关教程(概念版)
  4. JAVA中的Map集合
  5. 古月 ROS移动机器人实战5.3ROS导航框架介绍笔记
  6. Using temporary与Using filesort
  7. linux+gunzip解压命令,Linux gunzip命令解析 gunzip解压文件的方法
  8. 微短剧:爱优腾、抖快、喜马拉雅的新航线
  9. LivePlayer.js播放器遇到悬停英文提示如何切换显示成中文
  10. shell编程-运算符-环境变量-变量类型声明