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 获取字符串字节数的多种方法
Jun 02 Javascript
JavaScript获取/更改文本框的值的实例代码
Aug 02 Javascript
js全屏显示显示代码的三种方法
Nov 11 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
详解webpack2+React 实例demo
Sep 11 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
May 05 Javascript
webpack4 从零学习常用配置(小结)
May 28 Javascript
vue+koa2搭建mock数据环境的详细教程
May 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
js 事件小结 表格区别
2007/08/13 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
python两种遍历字典(dict)的方法比较
2014/05/29 Python
跟老齐学Python之关于类的初步认识
2014/10/11 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
总结python中pass的作用
2019/02/27 Python
Python简单基础小程序的实例代码
2019/04/28 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
500行python代码实现飞机大战
2020/04/24 Python
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
财务总经理岗位职责
2014/02/16 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
浅析Python实现DFA算法
2021/06/26 Python
深入理解go slice结构
2021/09/15 Golang