javascript 如何使此弹出菜单在此html菜单之外的页面上的任何单击时关闭?[副本]

57hvy0tb  于 2023-05-21  发布在  Java
关注(0)|答案(1)|浏览(174)

此问题已在此处有答案

Pure JavaScript - Hide Div on Clicking outside(3个答案)
昨天关门了。
此网页有一个功能正常的导航菜单。当您点击导航图标时,将出现一个菜单。当您单击同一图标时,导航菜单将消失。
不过,如果有导航菜单,最好确保点击它以外的任何地方也会导致它消失。
我不知道如何在js中做到这一点,所以请帮助
代码html:

<ul class="main-nav nav navbar-nav">
    <li class="active"><a href="/index.html">ГЛАВНАЯ</a></li>
    <li><a href="#">НОВОСТИ</a></li>
    <li><a href="#">СТАТЬИ</a></li>
    <li><a href="#">ВИДЕО</a></li>
    <li><a href="/onas.html">О НАС </a></li>
</ul>
fdbelqdn

fdbelqdn1#

将mousedown或click事件处理程序绑定到文档,并检查单击是否在菜单或菜单切换按钮之外完成:

document.addEventListener('click', e => {

   if( ! e.target.closest('.main-nav, .main-nav-toggle')){
       document.querySelector('.main-nav').style.display = 'none';
   }

});

确保display:none与您的切换代码同步。

相关问题