8

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

4

3 回答 3

14

是的,这是可能的。

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

$(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

于 2013-02-13T12:19:41.580 回答
7

我用另一种方式:

$(element).dialog({

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

});
于 2013-06-27T16:37:21.410 回答
1
$(selector-for-dialog).keyup(function(e) {
    // ESC key
    if ( e.keyCode === 27 ) {
        // custom action
    }
});
于 2013-02-13T12:19:55.767 回答