gpt4 book ai didi

Javascript - 使用 event.target 单击元素外部不起作用

转载 作者:行者123 更新时间:2023-12-03 06:49:26 25 4
gpt4 key购买 nike

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

我尝试在 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如果需要的话。

谢谢

最佳答案

您将点击监听器添加到 button 。回调函数closeMenu仅当单击按钮时才会调用,因此如果您单击外部,则不会发生任何事情。您应该在“外部”添加事件监听器:) On <body>例如

关于Javascript - 使用 event.target 单击元素外部不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com