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 相关文章推荐
js 数组的for循环到底应该怎么写?
May 31 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
JavaScript观察者模式(经典)
Dec 09 Javascript
js中数组的常用方法小结
Dec 30 Javascript
angularjs指令之绑定策略(@、=、&amp;)
Apr 13 Javascript
JavaScript表单即时验证 验证不成功不能提交
Aug 31 Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 Javascript
学习使用ExpressJS 4.0中的新Router的用法
Nov 06 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
Jan 15 Javascript
js验证密码强度解析
Mar 18 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 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 设计模式之 单例模式
2008/12/19 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
关于JS模块化的知识点分享
2019/10/16 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
Python变量类型知识点总结
2019/02/18 Python
Python求解正态分布置信区间教程
2019/11/20 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
成教自我鉴定
2013/10/27 职场文书
商务英语广告词大全
2014/03/18 职场文书
中介业务员岗位职责
2014/04/09 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
商务代表岗位职责
2015/02/15 职场文书
医院病假条范文
2015/08/17 职场文书