是否可以将alertify.js的cancel按钮和onclose调用的操作分开
Is it possible to separate the actions called by the cancel button and the onclose for alertify.js
我现在有这个:
$('form#uwbhandler').on('click', function(e){
e.preventDefault();
alertify.confirm("Mode 1",
function(){
alertify.success('Sent: Success Something');
socket.emit('send command', {data: 'acommand'});
},
function(){
alertify.success('Sent: Something');
socket.emit('send command', {data: 'bcommand'});
}).setHeader('<em>Select Mode</em> ').setting('labels',{'ok':'Mode 1', 'cancel': 'Mode 2'}).set({onshow:null, onclose:function(){ alertify.message('confirm was closed.')}});;
});
这主要取自alertify.js页面上的示例。但是,我想将取消按钮操作与onclose按钮分开进行自定义。但是,在设置单独的onclose函数后,用对话框的"x"按钮关闭会触发取消事件事件。
我建议使用对话框工厂来创建自定义对话框。
确认对话框定义设置为在关闭对话框。
然而,一个快速的解决方案是从现有的确认对话框继承并更新其setup
以禁用invokeOnClose
:
alertify.dialog('myCustomDialog', function() {
return {
setup: function() {
return {
buttons: [{
text: 'Mode 1',
key: 13 /*keys.ENTER*/ ,
className: alertify.defaults.theme.ok,
}, {
text: 'Mode 2',
key: 27 /*keys.ESC*/ ,
invokeOnClose: false, // <== closing won't invoke this
className: alertify.defaults.theme.cancel,
}],
focus: {
element: 0,
select: false
},
options: {
title: '<em>Select Mode</em> ',
maximizable: false,
resizable: false
},
};
}
}
}, false, 'confirm');
然后使用局部变量来决定是否执行onclose
回调内部的逻辑:
function demo() {
var modeSelected = false;
alertify.myCustomDialog("Which mode will it be?",
function() {
modeSelected = true;
alertify.success('Mode 1');
},
function() {
modeSelected = true;
alertify.success('Mode 2');
}
)
.set({
onshow: null,
onclose: function(arg) {
if (!modeSelected) {
alertify.message('confirm was closed.');
}
modeSelected = false;
}
});
}
请参阅实时演示
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 是否可以将alertify.js的cancel按钮和onclose调用的操作分开
- 在简单模式中,取消单击时不会调用onClose事件..当我在simple-modal上加载另一个jquery对话框时
- onclose总是在WebSocket的onerror之后调用