Javascript 如何在用户单击其他位置时隐藏div

Javascript 如何在用户单击其他位置时隐藏div,javascript,jquery,Javascript,Jquery,当用户单击文档中的任何其他位置时,我需要隐藏id=SDWN的div <div id="SDWN" onclick="OKIJUYG()"> <img src="../img/lupa.png" ID="ILDSIB" onclick="OKIJUYGA()" > </div> <div id="ATSIMD"> <div class="arrow-up" id="SHS"> </div> <di

当用户单击文档中的任何其他位置时,我需要隐藏id=SDWN的div

<div id="SDWN" onclick="OKIJUYG()">
    <img src="../img/lupa.png" ID="ILDSIB" onclick="OKIJUYGA()" >
</div>
<div id="ATSIMD">
    <div class="arrow-up" id="SHS">
    </div>
<div id="Vsauceisgenius" tabindex="-1"  >
    <img src="../img/x.png" id="CTSO" href="#">
    <input type="text" placeholder="People" id="IMOHD">
    <input type="submit" value="Search" id="DPMM">
    <P></P>
    <input type="text" placeholder="Hashtags" id="IMOHDS">
    <input type="submit" value="Search" id="DPMMM">
</div>
</div>

您可以使用检查元素是否已单击,如果未单击,则隐藏它:

$(document).click(function(event) {
    if (event.target !== $("#ATSIMD") && event.target !== $("#SHS") {
        $("#ATSIMD").hide();
    }
});
使用
$(文档)。单击()
在单击任意位置时隐藏div。然后将click绑定添加到div中,并用于停止事件冒泡

$(document).click(function(){
    $("#SDWN").hide();
});

/* Clicks within the dropdown won't make
   it past the dropdown itself */
$("#SDWN").click(function(e){
    e.stopPropagation();
});
“Other Place”我认为是除
#SDWN
以外的任何其他项目,请尝试以下代码:

if (document.body.addEventListener){
  document.body.addEventListener('click', function(e){
    if(e.target == document.getElementById("SDWN")) return;
     document.getElementById("SDWN").style.display = "none";
  }); 
} else if (document.body.attachEvent){
  document.body.attachEvent('onclick', function(e){
    if(e.target == document.getElementById("SDWN")) return;
    document.getElementById("SDWN").style.display = "none";
  });
}
试试你自己:

此解决方案不需要jQuery


但是我不喜欢这个解决方案,也许你可以找到另一个。

你尝试做了什么但没有成功?你搜索过谷歌/查看过其他帖子/阅读过jquery的api吗?我搜索过,但没有发现任何有用的东西。我尝试使用onfocus进行搜索,但在加载页面时显示不出来。是的,单击“打开”后,我需要“关闭”ATSIMD。问题不清楚,您添加了当用户单击文档中的任何其他位置时,我需要隐藏id=SDWN的div。标题只是说另一个地方。我在编辑前发布了我的答案。不要因为一个格式错误的问题而否决一个完全合法的答案。@Script47问题不清楚,代码都在一行中,这就是为什么我建议修改,并根据我的理解重写了这个问题。他接受了改变,所以我想那是他想要的。如果没有,那么我为误解感到抱歉。我的帖子是在更新之前发布的,所以与其投反对票,不如通知我检查更新。更新帖子时你不会收到通知,那么你希望我如何在不知情的情况下更新帖子?@Script47我说对不起,兄弟。这个问题不清楚,我对它进行了编辑,使它更清晰。和平。