我使用此plugin,我将确认方法包含在函数中,以便我每次都可以使用它https://jsfiddle.net/8g0j4unj/
function askQuestion($msg){
$.confirm({
icon : 'fa fa-question-circle-o',
content : ''+$msg+'',
theme : 'supervan',
closeIcon: true,
animation: 'scale',
type: 'orange',
draggable:'true',
buttons:{
'Continue' : {
keys : ['enter'],
action : function(){
return 1;
}
},
'Cancel': {
keys : ['esc'],
action: function(){
this.close();
}
}
}
});
}
当我尝试使用此功能时,它不会执行任何操作但继续该过程,当用户确认或取消条件时,如何将该函数返回到布尔值?
$(document).on('click','.sample',function(){
if(askQuestion('Are you sure want to continue without adding a server') == 1){
alert('Confirmed');
}
else{
alert('Cancelled');
}
});
答案 0 :(得分:0)
我真的不知道你为什么要这样做,而这个插件有callback
功能,你可以轻松使用它。您试图检测用户是否点击了Confirm
或Cancel
按钮,因此您无需使用此功能:
$(document).on('click','.sample',function(){});
您的代码完全错误,因为您希望通过单击按钮从函数中获取返回的数据!但是这个?
askQuestion('Are you sure want to continue without adding a server')
实际上它没有任何回报。无论如何。您只需使用callback
function askQuestion($msg){
$.confirm({
icon : 'fa fa-question-circle-o',
content : ''+$msg+'',
theme : 'supervan',
closeIcon: true,
animation: 'scale',
type: 'orange',
draggable:'true',
buttons:{
'Continue' : {
keys : ['enter'],
action : function(){
alert('Confirmed'); // if clicked on confirm
}
},
'Cancel': {
keys : ['esc'],
action: function(){
this.close();
alert('Canceled'); // if clicked on cancel
}
}
}
});
}
<强> JSFiddle 强>
答案 1 :(得分:0)
这可以通过callback
函数来完成。
$(document).on('click','.sample',function(){
askQuestion('Are you sure want to continue without adding a server', function(val){
if(val==1){
alert("Msg: confirmed");
//do something
}
else{
alert("Msg : rejected");
}
});
});
function askQuestion($msg, callback){
$.confirm({
icon : 'fa fa-question-circle-o',
content : ''+$msg+'',
theme : 'modern',
closeIcon: true,
animation: 'scale',
type: 'orange',
draggable:'true',
buttons:{
'Continue' : {
keys : ['enter'],
action : function(){
callback(1);
}
},
'Cancel': {
keys : ['esc'],
action: function(){
this.close();
callback(0);
}
}
}
});
}
这是callback
的使用方式,
因此,与其在askQuestion()
语句中使用if()
,
在callback
函数体中编写代码和条件。