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 相关文章推荐
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
将查询条件的input、select清空
Jan 14 Javascript
node.js中的querystring.escape方法使用说明
Dec 10 Javascript
深入解析JavaScript中的arguments对象
Jun 12 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
Oct 10 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
jQuery:unbind方法的使用详解
Aug 14 jQuery
webpack vue项目开发环境局域网访问方法
Mar 20 Javascript
Angular使用动态加载组件方法实现Dialog的示例
May 11 Javascript
vue-cli项目代理proxyTable配置exclude的方法
Sep 20 Javascript
详解基于Wepy开发小程序插件(推荐)
Aug 01 Javascript
vue-cli随机生成port源码的方法
Sep 02 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
总结Python中逻辑运算符的使用
2015/05/13 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
python处理csv中的空值方法
2018/06/22 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
python实现拼图小游戏
2020/02/22 Python
通过自学python能找到工作吗
2020/06/21 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
关键字final的用法
2013/10/02 面试题
Why we need EJB
2016/10/20 面试题
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
关于爱情的广播稿
2014/01/16 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
医院标语大全
2014/06/23 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
财会专业大学生求职信
2014/09/26 职场文书
生日祝酒词大全
2015/08/10 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python