打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
stopPropagation和cancelBubble的区别
stopPropagation的作用跟cancelBubble是一样的.都是用来阻止浏览器默认的事件冒泡行为.
他们的不同之处是:stopPropagation符合W3C标准.适用于FireFox等浏览器,不支持IE.而cancelBubble方法不符合W3C的标准.且只支持IE浏览器
请看下面的实例.该实例已兼容大多数现代浏览器
*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充
语法:
e.stopPropagation();
参数
e:事件传弟的参数.代表事件的状态
stopPropagation实例
<html>
<head>
<title>stopPropagation阻止冒泡--康董www.web666.net</title>
<style>
body{
color:#333;
font-size:12px;
}
</style>
</head>
<body>
<p>什么是事件冒泡,通俗的来讲就是 我们为页面内body添加一个单击事件,同样再为页面内li元素添加一个单击事件..当你单击li的时候.<br>
body的事件也会被触发.....因为li被包含在body元素内...你单击了li同时也单击了body...这就是事件冒泡....<br />
在有些时候.我们要阻止这种情况发生...也就是单击li事件.不会触发body的事件.... 这就叫阻止冒泡!
<div id="a">
<ul id="lia">请单击下面的列表.会触发body事件
<li>项目1</li>
<li>项目2</li>
<li>项目3</li>
</ul>
<ul id="lib">请单下面的列表.不会触发body事件.
<li>项目1</li>
<li>项目2</li>
<li>项目3</li>
</ul>
</div>
<script language="javascript">
document.body.onclick = function(){//首先为body元素绑定一个单击事件
alert("BODY事件");//单击页面即弹出对话框
}
function att_Event(){//为第一组li元素绑定onclick事件
var li = document.getElementById("lia").getElementsByTagName("li");
for(var i=0;i<li.length;i++){
li[i].onclick = function(){
alert("Li事件");
}
}
}
function att_Event_b(){//为第二组li元素绑定onclick事件
var li = document.getElementById("lib").getElementsByTagName("li");
for(var i=0;i<li.length;i++){
li[i].onclick = function(e){
alert("Li事件");
stopBubble(e); //运行阻止冒泡的函数
}
}
}
//该函数的功能用来阻止事件冒泡.并兼容多浏览器
function stopBubble(e){
//如果传入了事件对象.那么就是非IE浏览器
if(e){
//因此它支持W3C的stopPropation()方法
e.stopPropagation();
}
else{
//否则,我们得使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
}
}
window.onload = function(){
att_Event();
att_Event_b();
}
</script>
出自:<a href="http://www.web666.net">Web圈</a>
</body>
</html>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
捕获和冒泡
js阻止冒泡及jquery阻止事件冒泡示例介绍
DOM 事件深入淺出(二)
Keep Bootstrap dropdown open on click
javascript中BOM部分基础知识总结
管理管理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服