js阻止冒泡及jquery阻止事件冒泡示例介绍


Posted in Javascript onNovember 19, 2013

js阻止冒泡
在阻止冒泡的过程中,W3C和IE采用的不同的方法,那么我们必须做以下兼容。

function stopPro(evt){ 
var e = evt || window.event; 
//returnValue如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle, 
//可以取消发生事件的源元素的默认动作。 
//window.event?e.returnValue = false:e.preventDefault(); 
window.event?e.cancelBubble=true:e.stopPropagation(); 
}

或者:
function cancelBubble(e) { 
var evt = e ? e : window.event; 
if (evt.stopPropagation) { 
//W3C 
evt.stopPropagation(); 
} 
else { 
//IE 
evt.cancelBubble = true; 
}
 
JQuery 提供了两种方式来阻止事件冒泡。
方式一:event.stopPropagation();
$("#div1").mousedown(function(event){ 
event.stopPropagation(); 
});

方式二:return false;
$("#div1").mousedown(function(event){ 
return false; 
});

Jquery阻止默认动作即通知浏览器不要执行与事件关联的默认动作。
例如:
$("a").click(function(event){ 
event.preventDefault(); //阻止默认动作即该链接不会跳转。 
alert(4);//但是这个还会弹出 
event.stopPropagation();//阻止冒泡事件,上级的单击事件不会被调用 
return false;//不仅阻止了事件往上冒泡,而且阻止了事件本身 
});

但是这两种方式是有区别的。return false 不仅阻止了事件往上冒泡,而且阻止了事件本身。event.stopPropagation() 则只阻止事件往上冒泡,不阻止事件本身。
场景应用:Google 和 百度的联想框,当弹出下拉列表,用户在下拉列表区域按下鼠标时需要让光标仍然保持在文本输入框。
Jquery案例:
<script src="js/jquery-1.4.3.js"></script> 
<script type="text/javascript"> 
$(function(){ 
$("#aa").click(function(event){ 
alert("aa"); 
event.preventDefault(); 
event.stopPropagation(); 
alert(3); 
}); 
$("#ee").click(function(){ 
alert("ee"); 
}); 
$("a").click(function(event){ 
event.preventDefault(); 
alert(4); 
event.stopPropagation(); 
return false; 
}); 
}); 
</script> 
</head> 
<body> 
<div id="ee"> 
aaaaaaa 
<input id="aa" type="button" value="test" /> 
<a href="http://baidu.com">baidu.com</a> 
</div> 
</body>

js案例:
function tt(){ 
alert("div"); 
} 
function ttt(){ 
var e = arguments.callee.caller.arguments[0] || window.event; 
window.event?e.returnValue = false:e.preventDefault(); 
alert(3); 
window.event?e.cancelBubble:e.stopPropagation(); 
alert(4); 
} 
</script> 
</head> 
<body> 
<div onclick = "tt();"> 
ccccc 
<a href="http://baidu.com" onclick="ttt();">baidu.com</a> 
</div>
Javascript 相关文章推荐
使用jquery实现以post打开新窗口
Mar 19 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
Jun 03 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
js控制多图左右滚动切换效果代码分享
Aug 26 Javascript
理解javascript中DOM事件
Dec 25 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
Dec 12 Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
Jul 24 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
vue配置请求本地json数据的方法
Apr 11 Javascript
JavaScript Reflect Metadata实现详解
Dec 12 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
禁止ajax缓存获取程序最新数据的方法
Nov 19 #Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 #Javascript
jQuery控制iFrame(实例代码)
Nov 19 #Javascript
jquery 检测元素是否存在的实例代码
Nov 19 #Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 #Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
Nov 19 #Javascript
JavaScript中instanceof运算符的用法总结
Nov 19 #Javascript
You might like
世界第一个无线广播电台 KDKA
2021/03/01 无线电
php创建、获取cookie及基础要点分析
2015/01/26 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
js 操作符汇总
2014/11/08 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
python实现简单ftp客户端的方法
2015/06/28 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
实时获取Python的print输出流方法
2019/01/07 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
python中doctest库实例用法
2020/12/31 Python
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
化工机械应届生求职信
2013/11/04 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
总会计师岗位职责
2014/02/19 职场文书
安卓程序员求职信
2014/02/28 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript