javascript窗口[' func']参数返回undefined而不是函数

时间:2016-03-11 01:30:24

标签: javascript jquery json modal-dialog function-calls

我试图将json传递给一个函数,该函数依次获取json并显示动态ui-modal对话框。当我尝试传递按钮事件(函数)时,您正在执行并返回undefined如何传递对函数的引用而不是实际函数。对不起我的英文,下面的代码解释得更好:

//heres my ui model function
function showDialog(json) {
        var dialog_id = json.id;
        if(typeof($(dialog_id)[0]) === "undefined") {
            $(body).append("<div id='dialog-confirm'></div>");
        }
        $(dialog_id).html(json.confirmationText);
        $(dialog_id).dialog({
            modal: true,
            title: json.title,
            height: 250,
            width: 400,
            buttons:json.buttons
        });

}

//here is the function which calls
showDialog({"id":"#dialog-confirm","title":"blaa","confirmationText":'randomtext',"buttons":[{"text":"Cancel","click":window["noAction"]},{"text":"Confirm","click":window["doAction"]('pram1','param2')}]});

var noAction = function(){$('#dialog-confirm').dialog('close');}
var doAction = function(param1,param2){//do some logic};

noAction功能正常运行。 (当调用模型并单击取消时,对话框消失)

调用函数showDialog并返回doAction(在控制台中验证)时,将评估

undefined函数。如何绑定doAction以确认按钮。 (即,单击确认时,我想调用doAction)。

P.S:我知道如何使用自定义点击处理程序来完成它,但我认为这将是一个解决方案而不是实际的解决方案。

非常感谢任何帮助。提前致谢!

1 个答案:

答案 0 :(得分:1)

showDialog({..., "buttons":[...,{"text":"Confirm","click":function(){doAction(param1,param2);} }]})