在我的应用程序中,我需要创建自定义弹出窗口,但在尝试关闭它们时遇到了问题。要打开弹出窗口,用户需要在选择菜单项时点击“ENTER”。从那里弹出菜单,提供关闭按钮焦点,并在选择“关闭”或“提交”项目时按“ENTER”后关闭。
当用户尝试关闭弹出窗口时,它会关闭,但由于关闭函数没有消耗关键事件,因此最终会再次打开它。
目前,我在文档中有一个用于启用导航的 onkeyup 事件的键事件功能,然后我尝试将弹出关闭功能分配给 onclick、onkeyup 和 onkeypress,但无论我尝试哪个,按“ENTER”总是最终到达弹窗关闭后的主键事件功能。
我当前的快速修复是使用两个额外的布尔值,一个在弹出窗口关闭后变为真,另一个在主键事件函数看到第一个布尔值变为真后变为真(因为只有一个布尔值在窗口之后变为真由于某种原因,被关闭仍然允许事件到达主要功能)。
因为我需要在离开弹出窗口时选择相同的菜单项,取消选择菜单项,保存它的位置,然后返回它也需要更多的全局变量。
我主要是想知道是否有更好的方法来做到这一点,因为我不想有两个额外的全局变量浮动......