如何在JQuery Dialog中捕获ESC事件?

boz*_*ozo 8 jquery jquery-dialog

是否可以在JQuery对话框上为ESC键设置自定义处理程序?

Aln*_*tak 13

是的,这是可能的.

closeOnEscape选项设置为false并在对话框处理keydown程序中的.ui-dialog元素上注册自己的dialogcreate处理程序.

$(element).dialog({
    create: function() {
       $(this).closest('.ui-dialog').on('keydown', function(ev) {
           if (ev.keyCode === $.ui.keyCode.ESCAPE) {
               ...
           }
       });
       ...
    },
    closeOnEscape: false,
    ...
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/alnitak/EbnZr


vla*_*mir 7

我用另一种方式:

$(element).dialog({

    beforeClose: function(event) {
        if (event.keyCode === $.ui.keyCode.ESCAPE) {
            // ...
            return false;
        }
    }

});
Run Code Online (Sandbox Code Playgroud)