javascript window['func'] 参数返回未定义而不是函数
javascript window['func'] with parameters returning undefined instead of function
我正在尝试将 json 传递给一个函数,该函数依次获取 json 并显示动态 ui 模式对话框。当我尝试传递按钮 events(functions) 时,thy 正在执行并返回 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
函数运行正常。 (调用模型并单击取消时对话框消失)
doAction
函数在调用函数 showDialog 并返回 undefined
时得到评估(在控制台中验证)。如何将 doAction 绑定到确认按钮。 (即,当单击“确认”时,我想调用 doAction)。
P.S:我知道如何使用自定义点击处理程序来做到这一点,但我认为这是一种解决方法,但不是实际的解决方案。
非常感谢任何帮助。提前致谢!
尝试
showDialog({..., "buttons":[...,{"text":"Confirm","click":function(){doAction(param1,param2);} }]})
我正在尝试将 json 传递给一个函数,该函数依次获取 json 并显示动态 ui 模式对话框。当我尝试传递按钮 events(functions) 时,thy 正在执行并返回 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
函数运行正常。 (调用模型并单击取消时对话框消失)
doAction
函数在调用函数 showDialog 并返回 undefined
时得到评估(在控制台中验证)。如何将 doAction 绑定到确认按钮。 (即,当单击“确认”时,我想调用 doAction)。
P.S:我知道如何使用自定义点击处理程序来做到这一点,但我认为这是一种解决方法,但不是实际的解决方案。
非常感谢任何帮助。提前致谢!
尝试
showDialog({..., "buttons":[...,{"text":"Confirm","click":function(){doAction(param1,param2);} }]})