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中var声明变量作用域的推断
Dec 16 Javascript
基于jquery完美拖拽,可返回拖动轨迹
Mar 29 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 Javascript
JavaScript跨域调用基于JSON的RESTful API
Jul 09 Javascript
js H5 canvas投篮小游戏
Aug 18 Javascript
AngularJS入门教程之REST和定制服务详解
Aug 19 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
Oct 18 Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
微信小程序轮播图swiper代码详解
Dec 01 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
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
Javascript Global对象
2009/08/13 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
如何运行Python程序的方法
2013/04/21 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
专科毕业生自我鉴定
2013/12/01 职场文书
考试没考好检讨书
2014/01/31 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
明信片寄语大全
2014/04/08 职场文书
任命书模板
2014/06/04 职场文书
党员志愿者活动总结
2014/06/26 职场文书
工作证明格式及范本
2014/09/12 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫