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 相关文章推荐
不错的一个日期输入 动态
Nov 06 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
checkbox选中与未选中判断示例
Aug 04 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
Sep 24 Javascript
Node.js+Express配置入门教程
May 19 Javascript
脚本div实现拖放功能(两种)
Feb 13 Javascript
js,jq,css多方面实现简易下拉菜单功能
May 13 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
Vue 打包体积优化方案小结
May 20 Javascript
jQuery实现增删改查
Dec 22 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
德劲1104的电路分析与改良
2021/03/01 无线电
Snoopy类使用小例子
2008/04/15 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
Python 时间处理datetime实例
2008/09/06 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Python socket模块方法实现详解
2019/11/05 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
详解Python多线程下的list
2020/07/03 Python
Skyscanner波兰:廉价航班
2017/11/07 全球购物
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
论文答谢词
2015/01/20 职场文书
运动会闭幕词
2015/01/28 职场文书
大学毕业生个人总结
2015/02/28 职场文书
2015年安全月活动总结
2015/03/26 职场文书
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript