Javascript jQueryUI对话框,带有使用回调的动态按钮

Javascript jQueryUI对话框,带有使用回调的动态按钮,javascript,jquery,jquery-ui,callback,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Callback,Jquery Ui Dialog,我使用这个问题作为一个多用途jQueryUI对话框函数的基础,我可以在我的站点中重用这个函数。我希望能够重用代码,以显示不同的按钮,并在函数调用中定义回调 但是,当扩展这个答案以使用回调函数时,我没有得到所需的结果。回调函数在生成动态按钮时运行,而不是在按下对话框保存按钮时运行 我这里有一个JSFIDLE,显示我的无能 单击“保存”按钮时,我需要做什么才能运行回调 下面是简化的代码片段 function showDialog(inToDisplay, inTitle, buttonSetup,

我使用这个问题作为一个多用途jQueryUI对话框函数的基础,我可以在我的站点中重用这个函数。我希望能够重用代码,以显示不同的按钮,并在函数调用中定义回调

但是,当扩展这个答案以使用回调函数时,我没有得到所需的结果。回调函数在生成动态按钮时运行,而不是在按下对话框保存按钮时运行

我这里有一个JSFIDLE,显示我的无能

单击“保存”按钮时,我需要做什么才能运行回调

下面是简化的代码片段

function showDialog(inToDisplay, inTitle, buttonSetup, inSaveCallback) {
'use strict';
var dialog_buttons = {};

$('#jqDialog').load(inToDisplay + '.asp', function () {
    $(this).attr('title', inTitle);
    /*Build our button choices*/
    if (buttonSetup === 'closeonly') {
        dialog_buttons['Close'] = function () {
            $(this).dialog("close");
            $(this).dialog("destroy");
        }
    } else if (buttonSetup === 'savecancel') {
        dialog_buttons['Save'] = function () {
            if (inSaveCallback && typeof (inSaveCallback) === "function") {
                inSaveCallback;
            };
            $(this).dialog("close");
            $(this).dialog("destroy");
        }
        dialog_buttons['Close'] = function () {
            $(this).dialog("close");
            $(this).dialog("destroy");
        }
    }

    $(this).dialog({
        autoOpen: false,
        modal: true,
        open: function (event, ui) {
        },
        buttons: dialog_buttons
    });
    $('#jqDialog').dialog('open');

});
}

function saveAnswer() {
    alert('ToDo: Save data here');
}

$(document).ready(function () {
    showDialog('ajax_manageAnswer', 'Enter your answer details', 'savecancel', saveAnswer());
});
这里

改变这个

$(document).ready(function () {
    showDialog('ajax_manageAnswer', 'Enter your answer details', 'savecancel', saveAnswer); // remove () on saveAnswer...
});
还有这个

    dialog_buttons['Save'] = function () {
        if (inSaveCallback && typeof (inSaveCallback) === "function") {
            inSaveCallback(); // add -->> ()
        };
        $(this).dialog("close");
        $(this).dialog("destroy");
    }