Javascript - 使用event.target无效工作,点击元素外部

时间:2016-06-01 21:21:39

标签: javascript html html5

我有一个弹出菜单,其中有一个关闭按钮,工作正常。当用户也在框外点击时,我也会尝试关闭菜单。

我尝试在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

由于

1 个答案:

答案 0 :(得分:1)

您在button上添加了点击监听器。只有在单击按钮时才会调用回调函数closeMenu,因此如果单击外部没有任何反应。您应该在“outside”上添加事件监听器:)例如在<body>