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
})
问题是我在 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
})