【问题标题】:How to catch ESC in event in JQuery Dialog?如何在 JQuery 对话框中捕获 ESC 事件?
【发布时间】:2013-02-13 12:17:11
【问题描述】:

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

【问题讨论】:

  • 已经有一个叫 closeOnEscape: false
  • @DipeshParmar 只是关闭默认转义处理程序,它不添加自定义处理程序。

标签: jquery jquery-dialog


【解决方案1】:

是的,这是可能的。

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,
    ...
});

http://jsfiddle.net/alnitak/EbnZr

【讨论】:

    【解决方案2】:

    我用另一种方式:

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

    【讨论】:

      【解决方案3】:
      $(selector-for-dialog).keyup(function(e) {
          // ESC key
          if ( e.keyCode === 27 ) {
              // custom action
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2013-05-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多