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

时间:2013-02-13 12:17:11

标签: jquery jquery-dialog

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

3 个答案:

答案 0 :(得分: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,
    ...
});

请参阅http://jsfiddle.net/alnitak/EbnZr

答案 1 :(得分:7)

我用另一种方式:

$(element).dialog({

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

});

答案 2 :(得分:1)

$(selector-for-dialog).keyup(function(e) {
    // ESC key
    if ( e.keyCode === 27 ) {
        // custom action
    }
});