用于确认bootbox的Javascript回调函数

时间:2014-10-02 09:58:11

标签: javascript jquery bootbox

我正在使用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) { });
}

我不确定的是如何将此结果值传递回调用函数?

2 个答案:

答案 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提到它,但是你有同样的问题)