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 相关文章推荐
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
用jQuery技术实现Tab页界面之二
Sep 21 Javascript
基于jquery的不规则矩形的排列实现代码
Apr 16 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
Dec 03 Javascript
使用纯javascript实现放大镜效果
Mar 18 Javascript
JavaScript之AOP编程实例
Jul 17 Javascript
Javascript仿京东放大镜的效果
Mar 01 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
Mar 20 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
Nov 10 Javascript
vue+vant实现购物车全选和反选功能
Nov 17 Vue.js
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
加速XP搜索功能堪比vista
2007/03/22 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
浅析PHP Socket技术
2013/08/02 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Python实现CET查分的方法
2015/03/10 Python
python difflib模块示例讲解
2017/09/13 Python
pycharm远程调试openstack的图文教程
2017/11/21 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
美国家具网站:Cymax
2016/09/17 全球购物
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
比赛主持人开场白
2015/05/29 职场文书
放飞理想主题班会
2015/08/14 职场文书
4种方法python批量修改替换列表中元素
2022/04/07 Python