当用户点击该div之外的页面上的任何位置时,我想隐藏div。我怎么能用原始的javascript或jQuery做到这一点?
答案 0 :(得分:30)
将单击事件附加到文档以隐藏div:
$(document).click(function(e) {
$('#somediv').hide();
});
将点击事件附加到div,以阻止点击它传播到文档:
$('#somediv').click(function(e) {
e.stopPropagation();
});
答案 1 :(得分:2)
第一个想法,在原始javascript(来自this post):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
<!--
#mydiv{
background-color: #999999;
height: 100px;
width: 100px;
}
-->
</style>
<script type="text/javascript">
document.onclick=check;
function check(e)
{
var target = (e && e.target) || (event && event.srcElement);
var obj = document.getElementById('mydiv');
if(target!=obj){obj.style.display='none'}
}
</script>
</head>
<body>
<div id="mydiv">my div</div>
</body>
</html>
使用IE6和FireFox3.1进行测试,它确实像宣传的那样工作。
答案 2 :(得分:0)
听起来好像你想要一个模态对话框。这个jQuery插件http://code.google.com/p/simplemodal/看起来很有潜力。
答案 3 :(得分:0)
如果div具有焦点,则可以附加到onblur事件。