Javascript来检测窗口中的单击区域并关闭元素

Javascript来检测窗口中的单击区域并关闭元素,javascript,html,Javascript,Html,大家好,我正在尝试提出一种javascript代码,这种代码被广泛应用于检测点击区域,以关闭元素,如sidenav或浮动div。每当用户点击元素外部时,点击外部可以工作并关闭元素,但每当我点击元素内部时,它仍然会显示出来,下面是我的代码: <script> var y = document.getElementById("advert"); window.onclick = function(event){ if (event.target == y)

大家好,我正在尝试提出一种javascript代码,这种代码被广泛应用于检测点击区域,以关闭元素,如sidenav或浮动div。每当用户点击元素外部时,点击外部可以工作并关闭元素,但每当我点击元素内部时,它仍然会显示出来,下面是我的代码:

<script>
    var y = document.getElementById("advert");
    window.onclick = function(event){
        if (event.target == y){
            y.style.display = "none";
        } else {
            y.style.display = "block";
        }
    }
</script>

var y=document.getElementById(“广告”);
window.onclick=函数(事件){
如果(event.target==y){
y、 style.display=“无”;
}否则{
y、 style.display=“block”;
}
}

我对您的代码做了一些小改动,请尝试一下:

  var y = document.getElementById("advert");
  window.onclick = function(event){
    if (event.target == y || event.target.parentNode == y){
        y.style.display = "none";
    } else {
        y.style.display = "block";
    }
  }

我们需要更多关于你的css和htmlScript的信息,但这并不能告诉我们太多。请阅读,并相应地更新您的问题。如果看不到HTML结构,就无法判断这是否是由于未正确处理(或中断)事件冒泡造成的,或者其他。广告是一个元素,是一个div,在页面加载时浮动在页面中心。第二个答案不是jquery请提供一个可复制的示例。我尝试将您的代码添加到我的代码中,看看它是否有效。顺便说一句,谢谢