【问题标题】:How can I execute some code if jQuery dialog was closed on escape?如果 jQuery 对话框在转义时关闭,我该如何执行一些代码?
【发布时间】:2014-02-08 17:47:30
【问题描述】:

我有一个 jQuery 对话框,当我按下 Esc 或单击 Cancel 按钮时,我需要执行 some_code()。后者很容易实现,我只是添加定义buttons对象的一个​​属性:

$('#mydialog').dialog({

  closeOnEscape: true,

  close: function(event, ui) {
    //some_code();
    $(this).dialog('destroy')
  },

  buttons: {
    "OK": function() {
      $(this).dialog("close");
    },
    "Cancel": function() {
      some_code();
      $(this).dialog("close");
    }
  }
});

但是按 Esc 后如何执行some_code()?这个函数不能被点击OK按钮调用,所以我不能简单的把它放在close事件中。

【问题讨论】:

    标签: javascript jquery jquery-ui-dialog


    【解决方案1】:

    在没有找到答案的情况下谷歌搜索后,我开始研究close: function(event, ui) 部分并使用event.originalEvent (JSFiddle) 找到了解决方案:

    close: function(event, ui) {
      // some_code();
      if (event.originalEvent) {
        // triggered by clicking on dialog box X or pressing ESC
        // not triggered if a dialog button was clicked
        some_code();
      }
      $(this).dialog('destroy')
    }
    

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多