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 相关文章推荐
jQuery源码分析之Event事件分析
Jun 07 Javascript
jQuery创建自己的插件(自定义插件)的方法
Jun 10 Javascript
jquery offset函数应用实例
Nov 14 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
Bootstrap选项卡动态切换效果
Nov 28 Javascript
H5图片压缩与上传实例
Apr 21 Javascript
简单实现jQuery弹窗效果
Oct 30 jQuery
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
Jan 08 Javascript
Node.js安装详细步骤教程(Windows版)详解
Sep 01 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
Sep 02 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
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
DOM相关内容速查手册
2007/02/07 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
Python自动创建Excel并获取内容
2020/09/16 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
高中毕业的自我鉴定
2013/12/09 职场文书
简短证婚人证婚词
2014/01/09 职场文书
满月酒主持词
2014/03/27 职场文书
毕业证代领委托书
2014/09/26 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android