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 相关文章推荐
ext for eclipse插件安装方法
Apr 27 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
JavaScript中的函数重载深入理解
Aug 04 Javascript
jQuery实现瀑布流的取巧做法分享
Jan 12 Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 Javascript
深入掌握 react的 setState的工作机制
Sep 27 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 jQuery
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
基于Vue2x的图片预览插件的示例代码
May 14 Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 Javascript
js+canvas实现纸牌游戏
Mar 16 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
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
php中filter_input函数用法分析
2014/11/15 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
Javascript 解疑
2009/11/11 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python把转列表为集合的方法
2019/06/28 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
婚庆公司的创业计划书
2014/01/22 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
匿名检举信范文
2015/03/02 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
六年级作文之关于梦
2019/10/22 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS