看起来 jQuery UI 对话框中存在一个错误,其中 closeOnEscape 无法正常工作,因此转义仍会关闭对话框。一种可能的解决方案是取消绑定覆盖上的 keydown,但这似乎不起作用。
还有另一种可行的解决方案吗?
这是 1.6 的错误和修复的链接,但 1.5.3 仍然损坏:http ://dev.jqueryui.com/ticket/3253
看起来 jQuery UI 对话框中存在一个错误,其中 closeOnEscape 无法正常工作,因此转义仍会关闭对话框。一种可能的解决方案是取消绑定覆盖上的 keydown,但这似乎不起作用。
还有另一种可行的解决方案吗?
这是 1.6 的错误和修复的链接,但 1.5.3 仍然损坏:http ://dev.jqueryui.com/ticket/3253
此错误已被修复(在 1.6b 中):http: //jqueryui.com/docs/Changelog/1.6
更新到最新的 jQuery UI 版本应该可以解决这个问题。在最新版本(截至本答案时为 1.8.2)中,它适用于所有浏览器,没有任何问题。
似乎是一个非常简单的反向移植补丁 - 它只是包装
if (options.closeOnEscape) { }
大约
(e.keyCode && e.keyCode == $.keyCode.ESCAPE && dialog.close());