我有这个代码,一切正常,我想让所有元素 # content1, # content2 .. 在点击 body 时隐藏。我尝试设置 z-index 小于 div 的 body 但它没有帮助
$(function() {
$('#div1').click(function() {
$('#content1, #content2, #content3').hide();
$('#content1').show();
/* other code ..*/
});
$('#div2').click(function() {
$('#content1, #content2, #content3').hide();
$('#content2').show();
/* other code ..*/
});
});
html,body{width:100%;height:100%;}
#div1, #div2, #div3{
overflow:hidden;
float:left;
width:40px;
height:40px;
background:red;
margin:0 10px 0 0;
}
#content1, #content2, #content3{
overflow:hidden;
position:absolute;
top:50px;
background-color:#000;
color:#fff;
padding:2px 4px;
}
<!doctype html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">
<div id="content1" style="display: none;">
text1
</div>
</div>
<div id="div2">
<div id="content2" style="display: none;">
text2
</div>
</div>
<div id="div3">
<div id="content3" style="display: none;">
text3
</div>
</div>
</body>
</html>
试试这个:
$(function() {
var div1 = $("#div1");
var div2 = $("#div2");
var div3 = $("#div3");
$("body").on("click", function (e) {
if (div1.has(e.target).length || e.target == div1[0])
return;
else if (div2.has(e.target).length || e.target == div2[0])
return;
else if (div3.has(e.target).length || e.target == div3[0])
return;
$('#content1, #content2, #content3').hide();
});
});
html,body{width:100%;height:100%;}
<div id="div1">
<div id="content1">
text1
</div>
</div>
<div id="div2">
<div id="content2">
text2
</div>
</div>
<div id="div3">
<div id="content3">
text3
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句