JS:如何覆盖 AlertifyJS 中的 keyupHandler(event) 函数?

JS: How do I override keyupHandler(event) function in AlertifyJS?

问题是我在 Alertify 对话框上使用 Select2 组合框,现在每当我尝试通过按 Enter 键使用键盘 select select2 选项时,对话框关闭,因为 Enter 键是绑定到 Ok 按钮并且 ESC 键绑定到 Cancel 按钮,我想在不更改源 js 的情况下覆盖 keyupHandler 处理函数。

来源:https://github.com/MohammadYounes/AlertifyJS/blob/master/build/alertify.js+1269

Alert.js代码:

import alertify from 'alertify';

// How can I override the default keyupHandler function after importing it in my code?

我想添加验证,如果 event.target 是 Select2 并且它是打开的,那么不要触发关闭对话框的事件。

您可以结合两个库中的事件来实现此目的,首先监听 select2 的打开和关闭事件,然后使用它们来允许或拒绝关闭对话框。

var isClosed = false
// wire select2 events
$('select').select2().on('select2:open', function(e){
  isClosed = false
}).on('select2:close', function(e){
  setTimeout(function(){
    isClosed = true
   },200)
});

// wire alertifyjs events
alertify.confirm().set('onok', function(){
  return isClosed
})