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