jQuery中事件对象e的事件冒泡用法示例介绍


Posted in Javascript onApril 25, 2014

之前查手册的时候没有看到有事件对象这一概念,当时我想实现的是点击一个文本框出现一个下拉多选框,在文本框失去焦点是触发blur事件,从而使下拉框隐藏起来。但是当我要选择多选框是也会使它隐藏,就不能进行选择了,这让我很郁闷。查了一天的资料,终于在脱离了焦点这一块。在网上发现有一个事件冒泡的东西,发现通过点击可以实现我的这一功能。

e.stopPropagation()阻止事件冒泡

<head> 
<title></title> 
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
</head> 
<body> 
<table> 
<tr> 
<td><span>冒泡事件测试</span></td> 
</tr> 
</table> 
</body>

我们先看这段代码:
<script type="text/javascript"> 
$(function () { 
$("table").click(function () { alert("table alert"); }); 
$("td").click(function () { alert("td alert"); }); 
$("span").click(function (){ 
alert("span alert"); 
}); 
}); 
</script>

我们会看到这样的情况:span alert -> td alert -> table alert。这就叫事件冒泡。就是从下到上,从里到外,事件依次触发。能依次触发的条件是拥有同一事件的多个嵌套的标签,切事件会同时同步发生,会从里到外实现同一事件的响应。

有的时候我们不希望事件冒泡咋办?

<script type="text/javascript"> 
$(function () { 
$("table").click(function () { alert("table alert"); }); 
$("td").click(function () { alert("td alert"); }); 
$("span").click(function (e){ 
alert("span alert"); 
e.stopPropagation(); 
}); 
}); 
</script>

当我给整个document实现click事件是,可以给文本框和下拉选框阻止事件冒泡,使得再点击她们的同时不会使document触发事件。

如果想获得事件相关信息,就要给知识方法加一个e对象,e就是事件对象。

e.preventDefault()阻止事件默认行为。

$("a").click(function (e) { 
alert("默认行为被禁止喽"); 
e.preventDefault(); 
}); 
<a href="http://www.baidu.com">测试</a>

return false等效于同时调用e.preventDefault()和e.stopPropagation()

return false除了阻止默认行为之外,还会阻止事件冒泡。如果手上有一份jquery源代码的话,可查看其中有如下代码:

if (ret===false){ 
event.preventDefault(); 

event.stopPropagation(); 
}
Javascript 相关文章推荐
Javascript Function对象扩展之延时执行函数
Jul 06 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
Jun 10 Javascript
jquery序列化表单以及回调函数的使用示例
Jul 02 Javascript
简介JavaScript中setUTCSeconds()方法的使用
Jun 12 Javascript
JavaScript数据存储 Cookie篇
Jul 02 Javascript
AngularJS表单和输入验证实例
Nov 02 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
Jun 09 Javascript
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
Feb 24 Javascript
JavaScript流程控制(分支)
Dec 06 Javascript
jquery实现select选中行、列合计示例
Apr 25 #Javascript
js点击事件链接的问题解决
Apr 25 #Javascript
对js关键字命名的疑问介绍
Apr 25 #Javascript
html5+javascript制作简易画板附图
Apr 25 #Javascript
js实现字符串的16进制编码不加密
Apr 25 #Javascript
利用js制作html table分页示例(js实现分页)
Apr 25 #Javascript
jquery操作select大全
Apr 25 #Javascript
You might like
SONY SRF-40W电路分析
2021/03/02 无线电
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Python列表(List)知识点总结
2019/02/18 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
Python原始套接字编程实例解析
2020/01/29 Python
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
一个C/C++编程面试题
2013/11/10 面试题
自荐信的两点禁忌
2013/10/30 职场文书
中秋寄语大全
2014/04/11 职场文书
物业管理工作方案
2014/05/10 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
单位授权委托书范本
2014/09/26 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
python爬虫selenium模块详解
2021/03/30 Python
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android