我正在使用bootbox来确认警报框,我向用户发出警报。它是从一个js文件调用的,我有一个创建它的公共函数。如何使用回调函数获取确认对话框的结果:
所以我的js如下:
var message = "Do you want to close?";
loadConfirmAlert(message);
if (result) {
//do stuff
}
另一个js文件中的loadCofirmAlert函数如下:
var loadCofirmAlert = function (message) {
bootbox.confirm(message, function (result) { });
}
我不确定的是如何将此结果值传递回调用函数?
答案 0 :(得分:3)
尝试这样
var message = "Do you want to close?";
loadConfirmAlert(message,function(result){
if (result) {
//do stuff
}
});
var loadCofirmAlert = function (message,callback) {
bootbox.confirm(message, function (result) {
callback&&callback(result);
});
}
<强>更新强>
其中
callback&&callback(result)
只是
的缩短版if (callback)callback(result); //if callback defined, call it
您还可以使用
检查回调是否为函数(typeof(callback)==="function")&&callback(result)
答案 1 :(得分:1)
你必须将if语句放在回调
中bootbox.confirm(message, function (result) {
if (result) {
//do stuff
}
});
您遇到的问题是loadConfirmAlert(message);
未设置任何名为result
的全局变量,因此在您的第一个代码段中,result
永远不会被填充。
你的问题在这里How do I return the response from an asynchronous call?得到了很好的描述(虽然他用ajax提到它,但是你有同样的问题)