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 选择器 xpath 语法应用
May 13 Javascript
Javascript 键盘事件的组合使用实现代码
May 04 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
Nov 11 Javascript
Angular的事件和表单详解
Dec 26 Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 Javascript
基于JQuery的购物车添加删除以及结算功能示例
Mar 08 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
JAVA面试题 static关键字详解
Jul 16 Javascript
vue项目中引入Sass实例方法
Aug 27 Javascript
详解jQuery中的prop()使用方法
Jan 05 jQuery
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 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中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
Js切换功能的简单方法
2010/11/23 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
Django 路由层URLconf的实现
2019/12/30 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
介绍一下Linux文件的记录形式
2013/09/29 面试题
学习雷锋寄语大全
2014/04/11 职场文书
承诺书格式范文
2014/06/03 职场文书
代办社保委托书范文
2014/10/06 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
学校食品安全责任书
2015/01/29 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript
python自动化测试通过日志3分钟定位bug
2021/11/20 Python