2008-11-26 49 views
11

当用户点击该div外部页面上的任何位置时,我想隐藏div。我怎样才能做到这一点使用原始的JavaScript或jQuery?在特定div外的页面上随处点击事件

+0

我认为jQuery focusout() - 事件会解决你的问题。 – 2012-08-05 12:36:11

回答

30

附上一个click事件的文件隐藏的div:

$(document).click(function(e) { 
    $('#somediv').hide(); 
}); 

附加一个单击事件到div从传播到文档停止它点击:

$('#somediv').click(function(e) { 
    e.stopPropagation(); 
}); 
+0

非常感谢!这只是我想要的方式。 – sumek 2008-11-27 10:03:52

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,它的工作作为标榜。

0

如果div有重点,可以附加onblur事件。

相关问题