琴& 2018-12-02 01:07 采纳率: 50%
浏览 1465

如何同时实现点击按钮出现或回收下拉菜单和点击盒子外部也回收下拉菜单??

如题

        <div class="header-dropdown">
            <button onclick="dropdown()" class="header-dropbtn" id="header-dropdown-btn">下拉菜单</button>
            <div id="header-dropdown" class="header-dropdown-content"></div>

js片段如下

function dropdown() { //切换
    document.getElementById('header-dropdown').classList.toggle('show');
}

var dropdowns = document.getElementsByClassName('header-dropdown-content')[0];
var i;
for (i = 0; i < dropdowns.length; i++) {
    var openDropdown = dropdown[i];
    if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
    };
};

document.querySelector('.header-dropbtn').addEventListener('click', function(e) {
    document.querySelector('.header-dropdown').classList.add('show');
    e.stopPropagation(); //阻止冒泡
}, false);

document.querySelector('.header-dropdown').addEventListener('click', function(e) {
    e.stopPropagation();
}, false);

document.addEventListener('click', function() {
    document.querySelector('.header-dropdown').classList.remove('show');
}, false); 

已经实现了点击出现或恢复事件,如何在此基础上实现点击盒子外部也回收下拉菜单

  • 写回答

1条回答 默认 最新

  • 深海里的小虾米 2018-12-04 03:36
    关注

    页面可以加个透明的遮罩

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料