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 相关文章推荐
javascript 学习之旅 (2)
Feb 05 Javascript
Javascript 模式实例 观察者模式
Oct 24 Javascript
jQuery插件 tabBox实现代码
Feb 09 Javascript
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
利用js制作html table分页示例(js实现分页)
Apr 25 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
微信小程序适配iphoneX的实现方法
Sep 18 Javascript
iView框架问题整理小结
Oct 16 Javascript
vue.js购物车添加商品组件的方法
Sep 17 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
禁止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
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
Jquery操作radio的简单实例
2014/01/06 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
js实现抽奖效果
2017/03/27 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
python实现windows下文件备份脚本
2018/05/27 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
对python 命令的-u参数详解
2018/12/03 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
内科护士实习自我鉴定
2013/10/17 职场文书
心理健康教育心得体会
2013/12/29 职场文书
诉讼代理人授权委托书
2014/04/08 职场文书
安全技术说明书
2014/05/09 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
党员四风问题个人对照检查材料
2014/10/26 职场文书
小学生节水倡议书
2015/04/29 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android