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 相关文章推荐
innerText和innerHTML 一些问题分析
May 18 Javascript
javascript基础第一章 JavaScript与用户端
Jul 22 Javascript
actionscript与javascript的区别
May 25 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
js实现滚动条滚动到页面底部继续加载
Dec 19 Javascript
jQuery.deferred对象使用详解
Mar 18 Javascript
基于jquery实现轮播焦点图插件
Mar 31 Javascript
jQuery中的一些常见方法小结(推荐)
Jun 13 Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
ng-zorro-antd 入门初体验
Dec 03 Javascript
详细分析vue响应式原理
Jun 22 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
PHP 和 COM
2006/10/09 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
python实现图像全景拼接
2020/03/27 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
单位消防安全制度
2014/01/12 职场文书
七年级音乐教学反思
2014/01/26 职场文书
实习生求职自荐信
2014/02/07 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
法务专员岗位职责
2015/02/14 职场文书
诚信教育主题班会
2015/08/13 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python
4种非常实用的python内置数据结构
2021/04/28 Python
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS