div 嵌套 事件穿透
2013-03-28 14:17
756 查看
当多个div嵌套时候,点击最里层的div,会调用外层div的事件。如果我们要实现点击div,只是调用当前div的事件,闲话不说,贴出代码
<html>
<head>
<title></title>
<script language="javascript" type="text/javascript">
function BigDiv(event) {
alert("Big");
if (event.stopPropagation)
{
event.stopPropagation();//在基于firefox内核的浏览器中支持做法stopPropagation
}
else
{
event.cancelBubble = true;//基于ie的写法
}
}
function LittleDiv() {
alert("little");
event.cancelBubble = true;
}
function yy() {
alert("sb");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id ="fdk1" onclick="yy()">
YY
<!--此处会调用yy()事件-->
<div id="child2" onclick="BigDiv(event)">
大div
<!--加event.cancelBubble=true",只调用当前div的事件,禁止事件的浮生-->
<div onclick="LittleDiv();">
小div</div>
</div>
</div>
</form>
</body>
</html>
ie里两个div重叠时的事件穿透:
一般的开发者都知道ie6,7,8中如果两个div有层叠关系,上层的div背景透明,且没有内容,那么下层div在某些情况下就可以响应点击在上层的事件,也就是说,上层的div被穿透了.
一般来说,下层div可以响应点击的区域如下:
1,如果下层div有边框的话,边框可以响应点击
2,背景图和背景色都不能响应点击
3,内容可以响应点击,比如文本,图片等
另外:再有一种情况,如果外层div有click事件,点击上层div,这时有以下几种情况:
1,如果点击的下层div没有背景,这时候click事件不会响应
2,如果点击的下层div有背景,则上层div会响应click事件
3,如果点击在下层div的border上或者内容上,则上层div不响应click事件,下层div的click被触发
<html>
<body>
<div id="Div1" onclick="alert(11)">
<!--<img src=mask.gif style="width:100%;height:100%;position:absolute" />
<div id="Div4"></div>
</div>
<div id="Div0" onclick="alert(22)"></div>
</body>
</html>
<html>
<head>
<title></title>
<script language="javascript" type="text/javascript">
function BigDiv(event) {
alert("Big");
if (event.stopPropagation)
{
event.stopPropagation();//在基于firefox内核的浏览器中支持做法stopPropagation
}
else
{
event.cancelBubble = true;//基于ie的写法
}
}
function LittleDiv() {
alert("little");
event.cancelBubble = true;
}
function yy() {
alert("sb");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id ="fdk1" onclick="yy()">
YY
<!--此处会调用yy()事件-->
<div id="child2" onclick="BigDiv(event)">
大div
<!--加event.cancelBubble=true",只调用当前div的事件,禁止事件的浮生-->
<div onclick="LittleDiv();">
小div</div>
</div>
</div>
</form>
</body>
</html>
ie里两个div重叠时的事件穿透:
一般的开发者都知道ie6,7,8中如果两个div有层叠关系,上层的div背景透明,且没有内容,那么下层div在某些情况下就可以响应点击在上层的事件,也就是说,上层的div被穿透了.
一般来说,下层div可以响应点击的区域如下:
1,如果下层div有边框的话,边框可以响应点击
2,背景图和背景色都不能响应点击
3,内容可以响应点击,比如文本,图片等
另外:再有一种情况,如果外层div有click事件,点击上层div,这时有以下几种情况:
1,如果点击的下层div没有背景,这时候click事件不会响应
2,如果点击的下层div有背景,则上层div会响应click事件
3,如果点击在下层div的border上或者内容上,则上层div不响应click事件,下层div的click被触发
<html>
<body>
<div id="Div1" onclick="alert(11)">
<!--<img src=mask.gif style="width:100%;height:100%;position:absolute" />
<div id="Div4"></div>
</div>
<div id="Div0" onclick="alert(22)"></div>
</body>
</html>
相关文章推荐
- div 嵌套 事件穿透
- 有关在div中的嵌套事件
- div嵌套点击事件问题解决方法-阻止冒泡事件
- IE8下鼠标事件穿透div
- div嵌套div ,点击子级div不触发父级div点击事件
- 处理DIV元素嵌套情况下的事件响应
- Div嵌套 内层取消外层事件
- 嵌套div的onClick事件问题
- Div 嵌套事件
- 下拉框事件触发,将返回的内容写到你的页面div中
- Fragment出现点击穿透事件,其他fragment中的控件点击被响应了
- DIV中嵌套多个div,div下移ie浏览器兼容问题
- DIV外部点击事件
- Unity中uGUI的控件事件穿透逻辑
- Android ListView嵌套Button,Button事件覆盖item事件解决办法
- js事件处理相关-实现一个div的拖拽
- 点击div区域之外,触发事件
- 解决SorollView中和其他控件的事件分发机制-例如嵌套地图
- 嵌套div的边框合并问题
- 三层ViewPager嵌套 的事件处理