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 相关文章推荐
使用jquery清空、复位整个输入域
Apr 02 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
Nov 22 Javascript
Vue页面骨架屏注入方法
May 13 Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 Javascript
wx-charts 微信小程序图表插件的具体使用
Aug 18 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
浅谈如何优雅处理JavaScript异步错误
Nov 12 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
Feb 28 Javascript
jQuery实现异步上传一个或多个文件
Aug 17 jQuery
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
用php和MySql来与ODBC数据连接
2006/10/09 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
laravel学习教程之关联模型
2016/07/30 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
python实现学生管理系统
2018/01/11 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
Python matplotlib实时画图案例
2020/04/23 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
妇产医师自荐信
2014/01/29 职场文书
第二课堂活动总结
2014/05/07 职场文书
全运会口号
2014/06/20 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
抗洪救灾标语
2014/10/08 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
关爱空巢老人感想
2015/08/11 职场文书
小学中队长竞选稿
2015/11/20 职场文书
python 爬取华为应用市场评论
2021/05/29 Python