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 delete 引用类型对象
Nov 01 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
Perl Substr()函数及函数的应用
Dec 16 Javascript
javascript实现2016新年版日历
Jan 25 Javascript
深入分析javascript中的错误处理机制
Jul 17 Javascript
jQuery之动画效果大全
Nov 09 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 Javascript
vue按需引入element Transfer 穿梭框
Sep 30 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
jquery.pager.js实现分页效果
Jul 29 jQuery
浅谈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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
国际书籍零售商:Wordery
2017/11/01 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
linux系统都有哪些运行级别
2012/04/15 面试题
《油菜花开了》教学反思
2014/02/22 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
请假条应该怎么写?
2019/06/24 职场文书