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 相关文章推荐
悬浮数字的实现案例
Feb 19 Javascript
探寻Javascript执行效率问题
Nov 12 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
关于vue.js弹窗组件的知识点总结
Sep 11 Javascript
Angularjs添加排序查询功能的实例代码
Oct 24 Javascript
解读ES6中class关键字
Nov 20 Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 Javascript
JavaScript基础之静态方法和实例方法分析
Dec 26 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
Feb 26 Javascript
VUE实现移动端列表筛选功能
Aug 23 Javascript
使用Angular material主题定义自己的组件库的配色体系
Sep 04 Javascript
40行代码把Vue3的响应式集成进React做状态管理
May 20 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获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
原生JS轮播图插件
2017/02/09 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python类中super()和__init__()的区别
2016/10/18 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
python实现三次样条插值
2018/12/17 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
J2EE面试题
2016/03/14 面试题
应届生高等护理求职信
2013/10/12 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
读书活动总结范文
2014/04/26 职场文书
学校课外活动总结
2014/05/08 职场文书
英文感谢信格式
2015/01/21 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
公司车辆管理制度
2015/08/04 职场文书
纪律委员竞选稿
2015/11/19 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android