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 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
Jul 19 Javascript
jQuery EasyUI 中文API Layout(Tabs)
Apr 27 Javascript
JS加jquery简单实现标签元素的显示或隐藏
Sep 23 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
IntersectionObserver API 详解篇
Dec 11 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
详解Angular系列之变化检测(Change Detection)
Feb 26 Javascript
Vue中图片Src使用变量的方法
Oct 30 Javascript
原生js生成图片验证码
Oct 11 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
浅析return false的正确使用
2013/11/04 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
python中adb有什么功能
2020/06/07 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
家长评语大全
2014/01/22 职场文书
开学典礼感言
2014/02/16 职场文书
美术专业自荐信
2014/07/07 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js