我有一个弹出菜单,其中有一个关闭按钮,工作正常。当用户也在框外点击时,我也会尝试关闭菜单。
我尝试在closeMenu()中使用if语句来检查event.target是否不是按钮元素,但它似乎不起作用。
赞赏任何想法或方向。
var button = document.createElement('DIV');
button.className = "DoorSelector--FamilyOption";
var event_func = (parent == null) ? this.closeMenu.bind(this, close_container) : this.createMenuOptions.bind(this, parent, null);
button.addEventListener('click', event_func);
Menu.prototype.closeMenu = function(container, event) {
event.preventDefault();
event.stopPropagation();
container.classList.remove('show');
};
如果需要,可以查看完整代码here。
由于
答案 0 :(得分:1)
您在button
上添加了点击监听器。只有在单击按钮时才会调用回调函数closeMenu
,因此如果单击外部没有任何反应。您应该在“outside”上添加事件监听器:)例如在<body>
上