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 相关文章推荐
弹出广告特效(一个IP只弹出一次)的代码
Jul 27 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
jquery实现鼠标滑过显示提示框的方法
Feb 05 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 Javascript
深入理解JS DOM事件机制
Aug 06 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
Mar 09 Javascript
JS实现图片点击后出现模态框效果
May 03 Javascript
小程序中英文混合排序问题解决
Aug 02 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
nuxt静态部署打包相对路径操作
Nov 06 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
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
手把手教你搭建ES6的开发运行环境
2017/07/11 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
Python 返回汉字的汉语拼音
2009/02/27 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
python实现复制文件到指定目录
2019/10/16 Python
Python递归函数特点及原理解析
2020/03/04 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
公司法人授权委托书范本
2014/09/12 职场文书
田径运动会通讯稿
2014/09/13 职场文书
团代会开幕词
2015/01/28 职场文书
小学班主任心得体会
2016/01/07 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
基于Python实现股票收益率分析
2022/04/02 Python