【发布时间】:2013-02-13 12:17:11
【问题描述】:
是否可以在 JQuery 对话框上为 ESC 键提供自定义处理程序?
【问题讨论】:
-
已经有一个叫 closeOnEscape: false
-
@DipeshParmar 只是关闭默认转义处理程序,它不添加自定义处理程序。
标签: jquery jquery-dialog
是否可以在 JQuery 对话框上为 ESC 键提供自定义处理程序?
【问题讨论】:
标签: jquery jquery-dialog
是的,这是可能的。
将closeOnEscape 选项设置为false 并在对话框的dialogcreate 处理程序内的.ui-dialog 元素上注册您自己的keydown 处理程序。
$(element).dialog({
create: function() {
$(this).closest('.ui-dialog').on('keydown', function(ev) {
if (ev.keyCode === $.ui.keyCode.ESCAPE) {
...
}
});
...
},
closeOnEscape: false,
...
});
【讨论】:
我用另一种方式:
$(element).dialog({
beforeClose: function(event) {
if (event.keyCode === $.ui.keyCode.ESCAPE) {
// ...
return false;
}
}
});
【讨论】:
$(selector-for-dialog).keyup(function(e) {
// ESC key
if ( e.keyCode === 27 ) {
// custom action
}
});
【讨论】: