jQuery阻止同类型事件小结


Posted in Javascript onApril 19, 2013
<!DOCTYPE HTML> 
<html> 
<head> 
<title>test</title> 
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
</head> 
<body> 
<div style="height:300px;background-color:red;" id="red"> 
<div style="height:200px;background-color:green;" id="green"> 
</div> 
</div> 
</body> 
</html>

在上面的HTML中,red元素是green元素的父元素。
$(function(){ 
$("#green").click(function(event){ 
alert("green click1"); 
}); 
$("#green").click(function(event){ 
alert("green click2"); 
}); 
$("#red").click(function(event){ 
alert("red click"); 
}); 
});

上面的js代码给red元素和green元素添加了三个click事件。
当点击子元素green元素时,会依次执行green click1、green click2、red click事件。
事件追加:点击green元素会依次执行green click1、green click2两个事件(同一元素的同类型事件)。
事件冒泡:点击green元素会触发父元素的red click事件(父级元素的同类型事件)。
1、 在子元素事件函数中阻止事件冒泡
方法1:event.stopPropagation()
$(function(){ 
$("#green").click(function(event){ 
event.stopPropagation(); 
alert("green click"); 
}); 
$("#red").click(function(event){ 
alert("red click"); 
}); 
});

方法2:return false
$(function(){ 
$("#green").click(function(event){ 
alert("green click"); 
return false; 
}); 
$("#red").click(function(event){ 
alert("red click"); 
}); 
});

通过上面的两种方法,点击子元素green区域后,red click事件被阻止不再执行。但不会影响red元素其他区域的点击。
二者区别:
return false相当于event.preventDefault()+event.stopPropagation()。
2、 在父元素事件函数中阻止事件冒泡
$(function(){ 
$("#green").click(function(event){ 
alert("green click"); 
}); 
$("#red").click(function(event){ 
if(event.target == this) 
{ 
alert("red click"); 
} 
}); 
});

通过if(event.target== this)判断点击的目标元素是不是red元素本身,如果不是red本身而是它的子元素green元素,则不会执行if内的代码。
3、 阻止事件追加
以上的方法只能阻止事件冒泡(也就是父级元素的同类型事件),但不能阻止事件追加(同一元素的同类型事件)。
$(function(){ 
$("#green").click(function(event){ 
event.stopImmediatePropagation(); 
alert("green click"); 
}); 
$("#green").click(function(){ 
alert("green click2"); 
}); 
});

event.stopImmediatePropagation()不但可以阻止green click2事件,同时也阻止事件冒泡。
Javascript 相关文章推荐
符合标准的js表单提交的代码
Sep 13 Javascript
JS 文件本身编码转换 图文教程
Oct 12 Javascript
javascript delete 使用示例代码
Mar 29 Javascript
动态加载dtree.js树treeview(示例代码)
Dec 17 Javascript
学习JavaScript设计模式之迭代器模式
Jan 19 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
View.post() 不靠谱的地方你知道多少
Aug 29 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
echarts饼图各个板块之间的空隙如何实现
Dec 01 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 #Javascript
Extjs4 GridPanel 的几种样式使用介绍
Apr 18 #Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 #Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
Apr 18 #Javascript
JQuery 常用方法和事件详细介绍
Apr 18 #Javascript
基于JQuery 滑动与动画的说明介绍
Apr 18 #Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
Apr 18 #Javascript
You might like
php实现斐波那契数列的简单写法
2014/07/19 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
用户注册常用javascript代码
2009/08/29 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
python opencv读mp4视频的实例
2018/12/07 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
Python 如何查找特定类型文件
2020/08/17 Python
python类共享变量操作
2020/09/03 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
实习生的自我评价
2014/01/08 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js