jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)


Posted in Javascript onNovember 18, 2016

本文实例讲述了jQuery实现点击某个div打开层,点击其他div关闭层的方法。分享给大家供大家参考,具体如下:

其实很早就学过js一些高级部分的知识,但是用的不多,也就慢慢淡忘了。最近发现随着编程的深入,你不得不用到它们,比如事件的冒泡。

jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)

有一需求如下:

①点击class = "click" 块 弹出 class="pop" 块
②点击class = "page" 块 关闭 class="pop" 块
③点击class = "pop" 块 不关闭任何块

如果用jQuery 鲁莽一点,直接的程序就写出来了

<script>
 $(function(){
   $('.click').click(functon(){
     $('.pop').show();
   });
   $('.page').click(function(){
    $('.pop').hide();
  })
 })
</script>

你这么一闹腾,问题就出来了,当我点击"click"块的时候,妹的,我还没看到弹出层 "pop",瞬间就关闭了,这是为什么呢?因为你点击"click" 的瞬间,触发了两个事件,第一个是 自己本身的点击事件,因为自己的父层也注册了点击事件,那第二个父层的点击事件也被触发了,即所谓的事件冒泡。

我又想保留这两个事件,但又不想出现这样的情况,怎么办,这就是我要说的 阻止事件冒泡。

阻止事件冒泡大致有两种办法:

1)使用 return false;
2)使用
event.stopPropagation();

其实两者的原理差不多,就是屏蔽要冒泡的对象

$(function(){
   $('.click').click(functon(event){
     $('.pop').show();
     event.stopPropagation();
   });
   $('.page').click(function(){
    $('.pop').hide();
  })
})

或者:

$(function(){
   $('.click').click(functon(){
     $('.pop').show();
     return false;
   });
   $('.page').click(function(){
    $('.pop').hide();
  })
})

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript模拟map输出与去除重复项的方法
Feb 09 Javascript
在JavaScript中处理时间之getHours()方法的使用
Jun 10 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
jQuery获取table行数并输出单元格内容的实现方法
Jun 30 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
Nov 29 Javascript
vue使用keep-alive实现数据缓存不刷新
Oct 21 Javascript
bing Map 在vue项目中的使用详解
Apr 09 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
vue引入js数字小键盘的实现代码
May 14 Javascript
ztree+ajax实现文件树下载功能
May 18 Javascript
浅谈javascript中遇到的字符串对象处理
Nov 18 #Javascript
文件上传,iframe跨域数据提交的实现
Nov 18 #Javascript
jQuery实现自动调用和触发某个事件的方法
Nov 18 #Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 #Javascript
用iframe实现不刷新整个页面上传图片的实例
Nov 18 #Javascript
Form表单按回车自动提交表单的实现方法
Nov 18 #Javascript
form+iframe解决跨域上传文件的方法
Nov 18 #Javascript
You might like
discuz Passport 通行证 整合笔记
2008/06/30 PHP
20个PHP常用类库小结
2011/09/11 PHP
php使用glob函数快速查询指定目录文件的方法
2014/11/15 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
javascript demo 基本技巧
2009/12/18 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
python list排序的两种方法及实例讲解
2017/03/20 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
深入浅析Python中的迭代器
2019/06/04 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
django创建css文件夹的具体方法
2020/07/31 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
社区巾帼文明岗事迹材料
2014/06/03 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
大学班干部竞选稿
2015/11/20 职场文书