javascript - 单击外部 div 和 sibling 时隐藏 div

标签 javascript jquery html

<分区>

我只想在您单击该 div 外部时隐藏 div“auto”。

此时,如果您点击“more-stuff”,它会隐藏 div,因为您没有点击“auto”。所以我想我的问题是如何在 IF 语句中包含 sibling (顺便说一下,里面可能有很多 div,但“more-stuff”只是一个例子)。

 <div id="auto">
   <div id="more-stuff">
      HIDE ALSO WHEN YOU CLICK IN HERE!
   </div>
 </div>

 jQuery(document).click(function(e) {
     if( e.target.id != 'auto') { // Hide when click outside of layer
         jQuery("#auto").hide();
     }
 });

我希望点击兄弟元素也不会关闭 div

最佳答案

您可以使用 .closest()检查事件目标是否具有 ID 为 #auto 的父级。

演示:

$(document).click(function(e) {
    if (!$(e.target).closest("#auto").length) {
      $('#auto').hide();
    }
 });
#auto {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="auto">
   <div id="more-stuff">
      HIDE ALSO WHEN YOU CLICK IN HERE!
   </div>
 </div>

关于javascript - 单击外部 div 和 sibling 时隐藏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57186354/

相关文章:

html - 将 div 内容 float 到 div 的底部。将所有内容粘贴到周围 div 的底部

javascript - 在没有 transaction.get() 的情况下启动 firestore 事务

javascript - 动画 div 水平到垂直

java - 在 Wicket 中接收 jQuery 正文更改

javascript - Bootstrap - 禁用 <div class ="bfh-selectbox bfh-countries">

javascript - document.write 后按钮不显示

javascript - 我可以在 css 或 javascript 中从一个元素画一条线到另一个元素吗?

c# - 如何将 onclick 事件添加到 gridview 的第一列而不是整行?

javascript - 我如何找到从 jquery 中的表单提交事件中单击的按钮?

javascript - 是否可以使用 jQuery Mobile 动态创建元素?