【发布时间】:2011-06-12 06:12:45
【问题描述】:
实际上,jQuery 中存在(仍然)一个错误:http://bugs.jqueryui.com/ticket/4511。
此行为的原因(来自错误描述 cmets):“对话框本身将 keydown 事件绑定到自身以在 ESC 上关闭对话框;此外,对话框覆盖将 keydown 事件绑定到文档,无需过滤以仅关闭活动对话框。”
我想不出一个可接受的解决方法。有没有人不得不处理它?
【问题讨论】:
-
不要同时显示多个 modal 对话框。这是糟糕的用户界面,可能是这个错误(实际上是这个错误的副本:bugs.jqueryui.com/ticket/3539)在 2 年内没有被触及的原因。
-
我想不出更好的解决方案。这是相当标准的。我有一个 jqGrid,在单击某些单元格时会打开对象的历史记录(大多数情况下为 10-200 行),并带有提供一些操作的标题。每条历史消息都有“查看详细信息”。在这种情况下,将两个模态对话框堆叠在一起是很自然的。但我愿意接受建议...此外,第一个对话框上的操作可能会提示警告(例如,删除要求确认)
-
尝试使用非模态对话框。在这里,“Esc”仅关闭最后打开的对话框(即使它在后台)。再次按 Esc 没有结果。但这可能是一种可行的方法,需要进行一些更改(仅打开一个相同类型的对话框,“手动”处理 Esc)。会试试看。
标签: javascript jquery-ui dialog keyboard-shortcuts modal-dialog