js常用阻止冒泡事件
2024-09-27 15:09:14
原文链接:http://caibaojian.com/javascript-stoppropagation-preventdefault.html
防止冒泡
w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true
stopPropagation也是事件对象(Event)的一个方法,作用是阻止目标元素的冒泡事件,但是会不阻止默认行为。什么是冒泡事件?如在一个按钮是绑定一个”click”事件,那么”click”事件会依次在它的父级元素中被触发 。stopPropagation就是阻止目标元素的事件冒泡到父级元素。如:·
<div id='div' onclick='alert("div");'>
<ul onclick='alert("ul");'>
<li onclick='alert("li");'>test</li>
</ul>
</div>
上面的代码,Demo如下,我们单击test时,会依次触发alert(“li”),alert(“ul”),alert(“div”),这就是事件冒泡。
- 测试冒泡
阻止冒泡
//code from http://caibaojian.com/javascript-stoppropagation-preventdefault.html
window.event? window.event.cancelBubble = true : e.stopPropagation();
- 停止冒泡
http://caibaojian.com/javascript-stoppropagation-preventdefault.html
//得到事件
function getEvent(){
if(window.event) {return window.event;}
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event || arg0.constructor ==MouseEvent
|| arg0.constructor==KeyboardEvent)
||(typeof(arg0)=="object" && arg0.preventDefault
&& arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;
}
//阻止冒泡
function cancelBubble()
{
var e=getEvent();
if(window.event){
//e.returnValue=false;//阻止自身行为
e.cancelBubble=true;//阻止冒泡
}else if(e.preventDefault){
//e.preventDefault();//阻止自身行为
e.stopPropagation();//阻止冒泡
}
}
来源:前端开发博客
最新文章
- WinCE小结
- 点我吧工作总结(技术篇) zookeeper
- iOS开发--二维码的扫描
- hbase-architecture
- 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出
- sql where 1=1
- 关于JSON的总结
- 68. Text Justification
- linux复制多个文件到文件夹
- Git协作流程(转)
- progID
- 2.关于Apache Spark
- OAuth2.0学习(1-12)开源的OAuth2.0项目和比较
- Oracle 中的SELECT 关键字(查询、检索)
- P1880 [NOI1995]石子合并(区间DP)
- 获取页面定位元素left top
- Django的rest_framework的分页组件源码分析
- Java之.jdk安装-Linux
- 一、ZooKeeper学习
- 两种方法设置nginx并发限制下面的白名单策略
热门文章
- SQL中group by后面的having中不能使用别名
- mysql安装报vcruntime140.dll缺失
- Java集合(0):概述
- maven 依赖原则
- 【HTML】常用的标签学习(2)
- PJzhang:在windows10中实现右键命令行快捷打开
- [转帖]国内拉取google kubernetes镜像
- [转帖]使用Grafana和Telegraf监视VMware ESXi的方法
- Codeforces Educational Codeforces Round 3 E. Minimum spanning tree for each edge 树上倍增
- php网络请求