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 相关文章推荐
window.open打开页面居中显示的示例代码
Dec 27 Javascript
js操作iframe父子窗体示例
May 22 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
Jun 15 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
Vue实现购物车功能
Apr 27 Javascript
详解Node.js access_token的获取、存储及更新
Jun 20 Javascript
原生JS控制多个滚动条同步跟随滚动效果
Dec 22 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
Vue触发隐藏input file的方法实例详解
Aug 14 Javascript
vue-dplayer 视频播放器实例代码
Nov 08 Javascript
React中Ref 的使用方法详解
Apr 28 Javascript
vscode中使用npm安装babel的方法
Aug 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
php中防止伪造跨站请求的小招式
2011/09/02 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
Python守护进程(daemon)代码实例
2015/03/06 Python
解决python 上传图片限制格式问题
2019/10/30 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
Python3获取cookie常用三种方案
2020/10/05 Python
设计部经理的岗位职责
2013/11/16 职场文书
法制宣传口号
2014/06/16 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
干部考核工作总结
2015/08/12 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS