用JS阻止事件冒泡
2015-12-11 20:49
796 查看
事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。
可以用JS来阻止js事件冒泡。因为浏览器的差异IE和FF的JS写法有点不一样。
IE用cancelBubble=true来阻止而FF下需要用stopPropagation方法。
下一下完整的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function aaaclick(){
alert("td click");
}
function bbbclick(evt){
alert("td click");
if (window.event) {
event.cancelBubble = true;
}else if (evt){
evt.stopPropagation();
}
}
function trclick(){
alert("tr click");
}
function tableclick(){
alert("table click");
}
</script>
<style type="text/css">
<!--
.tab {
border: 1px solid #0066FF;
cellpadding:0px;
cellspacing:0px;
}
.tab td{
border: 1px solid #0066FF;
}
-->
</style>
</head>
<body>
<p>点击aaaa会触发上层的onclick事件,点击bbbb不会触发上层onclick事件</p>
<table width="204" onclick="tableclick()" class="tab">
<tr >
<td width="96"> </td>
<td width="96"> </td>
</tr>
<tr onclick="trclick()">
<td onclick="aaaclick()">aaaa</td>
<td onclick="bbbclick(event)">bbbbb</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
可以用JS来阻止js事件冒泡。因为浏览器的差异IE和FF的JS写法有点不一样。
IE用cancelBubble=true来阻止而FF下需要用stopPropagation方法。
下一下完整的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function aaaclick(){
alert("td click");
}
function bbbclick(evt){
alert("td click");
if (window.event) {
event.cancelBubble = true;
}else if (evt){
evt.stopPropagation();
}
}
function trclick(){
alert("tr click");
}
function tableclick(){
alert("table click");
}
</script>
<style type="text/css">
<!--
.tab {
border: 1px solid #0066FF;
cellpadding:0px;
cellspacing:0px;
}
.tab td{
border: 1px solid #0066FF;
}
-->
</style>
</head>
<body>
<p>点击aaaa会触发上层的onclick事件,点击bbbb不会触发上层onclick事件</p>
<table width="204" onclick="tableclick()" class="tab">
<tr >
<td width="96"> </td>
<td width="96"> </td>
</tr>
<tr onclick="trclick()">
<td onclick="aaaclick()">aaaa</td>
<td onclick="bbbclick(event)">bbbbb</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
相关文章推荐
- javascript 得到cookie
- javascript setAttribute使用兼容
- JavaScript全讲-它能做什么
- Chrome 中的 JavaScript 断点设置和调试技巧
- 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
- fastjson应用
- javascript AOP实现
- javascript:Global全局对象,编码解码,eval方法
- Javascript模块化编程(三):require.js的用法
- javascript:利用javascript对象的特性去掉数组中的重复项
- jsp 动态生成 下拉框
- javascript:对象基础
- 手动编译Jsp文件
- JS横向轮播
- c 保存json数据到结构体
- window.open打开窗口并居中/js弹窗
- sea.js 个人入门
- JavaScript学习(5.7.1):with语句
- JavaScript语言基础知识10
- js学习之function是对象