实际上,jQuery 中存在(现在仍然存在)错误:http://bugs.jqueryui.com/ticket/4511 .
此行为的原因(来自错误描述评论):“对话框本身将 keydown 事件绑定(bind)到自身以在 ESC 上关闭对话框;此外,对话框覆盖将 keydown 事件绑定(bind)到文档,不过滤仅关闭事件对话框。”
我想不出一个可接受的解决方法。有没有人必须处理它?</p>
最佳答案
非常简单 - 创建模态对话框后,运行此命令:
$([document, window]).unbind('.dialog-overlay');
如果您创建多个模态对话框,按 ESC 将仅关闭顶部的对话框。 然后,一旦您将注意力集中在底部对话框上,按 ESC 它也会将其关闭。
希望这对您有所帮助!
附言当您希望在按下 ESC 键时立即关闭所有对话框或仅关闭焦点对话框时,jQuery UI 开发人员应该添加一个选项。
关于javascript - 单个 ESC 关闭 jQuery UI 中的所有模式对话框。解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744070/