Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在导航栏外单击以关闭导航栏_Javascript - Fatal编程技术网

Javascript 如何在导航栏外单击以关闭导航栏

Javascript 如何在导航栏外单击以关闭导航栏,javascript,Javascript,我正在尝试创建一个JavaScript函数,当用户点击我的侧边导航菜单的外部时,该函数将使其关闭。下面是获取导航后我试图实现的代码 var sidenav = document.getElementById("Mynav"); window.onclick = function(event) { if (event.target == sidenav) { sidenav.style.display = "none"; } }; 其他sidenav功能正常。但是我怀疑这个Jav

我正在尝试创建一个JavaScript函数,当用户点击我的侧边导航菜单的外部时,该函数将使其关闭。下面是获取导航后我试图实现的代码

var sidenav = document.getElementById("Mynav");
window.onclick = function(event) {
  if (event.target == sidenav) {
    sidenav.style.display = "none";
  }
};
其他sidenav功能正常。但是我怀疑这个JavaScript模块(=),不确定它是否应该(!=)。任何帮助都将不胜感激

测试它:

if (event.target !== sidenav)
您希望单击的目标不等于sidenav。JavaScript中与此对应的逻辑运算符很好
==。它是为了推广运算符的否定


我不知道javascript有这样的竞争力。你能给我介绍一个能很好地解释JS冒泡的资源吗。无论如何谢谢你的帮助好吧,让我检查一下谷歌,我实际上看到大多数网站都实现了clickoutside元素,用modals来关闭它,所以我创造性地想,我可以把它应用到sidenav上。当你点击一些侧导航的外部时,它们会关闭。很抱歉我的困惑。你的初始代码很好,除了比较逻辑,我一开始读错了。是的,情态动词通常实现你想要实现的行为。当您想要比较两个不相等的值时,javascript比较逻辑不清楚。是吗!或=酷。这太棒了,大多数浏览器上的内置javascript引擎都在使用它,反馈它的方式它禁用了整个功能。Js在我删除窗口onclick和事件函数之前不工作如果用户单击导航栏中的任何内容,这将关闭导航栏,因为目标将是导航栏中的元素,而不是导航栏本身。