在一个页面中有3个独立的div,不存在嵌套层次关系。3个div互有重叠,如何控制监听事件的层次关系。比如div2盖住部分div1.点击重叠部分如何让div1监听到?
测试代码:
<html>
<script src="jquery-1.8.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
</script>
<style>
div{
width:200px;
height:200px;
position: absolute;
}
#rec1{
background-color: yellow;
opacity:0.7;
background-color: transparent none;
z-index: 1;
}
#rec2{
background-color: red;
opacity:0.7;
left:100px;
z-index: 2;
}
#rec3{
background-color: blue;
opacity:0.7;
left:200px;
z-index: 3;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
var rec1 = document.getElementById("rec1");
var rec2 = document.getElementById("rec2");
var rec3 = document.getElementById("rec3");
rec1.addEventListener("click",function(event){
console.log(event);
event.stopPropagation;
event.preventDefault();
console.log("rec1");
},false);
rec2.addEventListener("click",function(event){
console.log(event);
event.stopPropagation;
event.preventDefault();
console.log("rec2");
},false);
rec3.addEventListener("click",function(event){
console.log(event);
event.stopPropagation;
event.preventDefault();
console.log("rec3");
},false);
})
</script>
<body>
<div id="rec1"></div>
<div id="rec2"></div>
<div id="rec3"></div>
</body>
</html>
我的解决方案:
若监听的是rec1,则给rec1添加一个rec1Wrapper,z-index为最高,rec1Wrapper监听click事件并触发rec1的点击事件。
rec1Wrapper.addEventListener("click",function(event){
$("#rec1").trigger("click");
},false);
<div id="rec1Wrapper"></div>
#rec1Wrapper {
z-index:99;
}
分享到:
相关推荐
JavaScript+div 半透明弹出层,function openNewDiv(_id) { var m = "mask"; if (docEle(_id)) document.removeChild(docEle(_id)); if (docEle(m)) document.removeChild(docEle(m)); // 新激活图层 var newDiv...
用DIV模仿SELECT下拉框 function replaceSelects() { try{ for (i=0;i;i++){ // 隐藏 select selects[i].style.display = 'none'; select_divTag = document.createElement('div'); select_divTag.id = ...
图2(弹出多个)构造函数: 代码如下: var DivWindow= function(popup/*最外层div id*/,popup_drag/*拖动div id*/,popup_exit/*退出按钮id*/ ,exitButton/*触发服务器端退出按钮id*/,varwidth,varheight,zindex){ ...
position定位如果有重叠的时候,z-index愈大,就显示在最上面 此时我们就可以设置div的css样式z-index:99999,那么该div就显示在最前面
有关z-index 的一些理解(包括static / relative / absolute / fixed)
z=obj.style.zIndex //获取对象的z轴坐标值 //设置对象的z轴坐标值为100,确保当前层显示在最前面 obj.style.zIndex=100 x=event.offsetX //获取鼠标指针位置相对于触发事件的对象的X坐标 y=event.offsetY
zindex, 在压缩的文本文件上,创建索引 zindex 在time-和空间高效的文本文件中创建和查询基于压缩的行的索引。我的痒我有很多multigigabyte文本压缩日志文件,我希望能够通过索引在它们中找到数据。 每一行都有一个...
javascript 的所有动作包括一些HTML中常用的JS动作都有描述,很有用;
javascript 动态改变层的Z-INDEX的代码style.zIndex
建站最常见的一个问题就是怎么让一个div在另外一个div之上呢?经搜索,寻得不错的解决方法,设置div的z-index属性,让div永远在上
z-index层叠等级属性 z-index层叠等级属性 01 z-index层叠等级属性 当对多个元素同时设置定位时,定位...了解当多元素发生重叠时可使用z-index属性调整重叠顺序 熟知掌握z-index属性的语法格式能熟练运用 总结 THANKS
Canvas:最基本的面板。仅支持用显示坐标定位元素。...具较大ZIndex值的元素将被呈现在具较小ZIndex值的元素之上。若多个子元素拥有相同大小ZIndex值,则在面板中的Children集合中的顺序决定该顺序。
<script language="javascript"> var IE5=(document.getElementById && document.all)? true : false; var W3C=(document.getElementById)? true: false; var currIDb=null, currIDs=null, xoff=0, yoff=0; zctr=0; ...
div.style.zIndex="19999"; div.style.position="absolute"; div.style.backgroundColor="black"; div.style.left="0px"; div.style.top="0px"; div.style.filter="alpha(opacity=80)"; div.style.opacity=...
代码如下:[removed] var MAX_INDEX=4; function change(ddd) { if(ddd....div id=”layer1″ onclick=”[removed]change(this);” style=”position:absolute;margin-left:100;margin-top:50px;margin-=100;width=100
在写css代码时发现了一个很简单却又很多人应该碰到的问题,设置Z-INDEX属性无效,要让z-index起作用有个小小前提,就是元素的position属性要是relative,absolute或是fixed,感兴趣的朋友可以了解下,希望可以帮助到...
`position: relative;z-index: -1;`时,子控件无法点击
DIV弹出层 ******************************/ var cTime; function OpenDivLayer(tag) { var divBackground = document.getElementById('divBackground'); var divShow = document.getElementById('divShow'...
用DataGrid基于jQuery(实际上只用了它的按照类查找元素一个方法)写的自定义DropDownList,解决不能控制生成后的Select html控件不能控制zIndex而遮挡Div层及其他复杂样式,没有封装成dll,压缩包里是例子及所有用到...