鼠标点击菜单以外的地方 使下拉菜单消失

96
边沉
2017.08.11 16:03* 字数 109

//点击“显示菜单”按钮时,显示菜单,并阻止事件冒泡

document.querySelector('.showBtn').addEventListener('click', function(e){
    document.querySelector('.menu').classList.add('show');
    e.stopPropagation();//关键在于阻止冒泡
}, false);

//点击“菜单”内部时,阻止事件冒泡。(这样点击内部时,菜单不会关闭)

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

//监听整个document的点击事件,如果能收到事件(说明点击源既不是“显示菜单”按钮,也不来自菜单内部),就可以放心关闭菜单了

document.addEventListener('click', function(){
    document.querySelector('.menu').classList.remove('show');
}, false);
日记本