我有一个对话框,对话框中有动态按钮。在每个按钮中,都会生成一个 $.get()
。
文件的路径部分是可变的,函数(将在成功时执行)也是可变的。
但我无法让它工作。控制台显示变量是 undefined
。
我知道为什么,因为它在 function
中。但是我在全局设置了变量。
任何人都可以向我解释如何让这些变量起作用吗?
我将提供我的源代码,以便您明白我的意思。
源代码
var dialog_buttons = {};
for(var i=0;i<socialMediaServ.length;i++)
{
dialog_buttons["Upload naar "+socialMediaServ[i]]= function()
{
$("#wait-dialog").dialog(
{
modal: true,
resizable: false,
draggable: false,
width:305,
height:125,
my:'center',
at:'center',
open: function(){}
});
$.get("../includes/social/"+socialMediaServ[i]+"/upload.php",{functie: "checkUser", fotonaam: fotoNaam}, window['users_'+socialMediaServ[i]+'_check'], 'json');
}
};
dialog_buttons["Sluiten"]= function()
{
$(this).dialog("close");
};
$("#dialog-foto").dialog("option", "buttons", dialog_buttons);
$("#dialog-foto").dialog("open");
变量 socialMediaServ
设置在我页面的顶部。 socialMediaServ
是一个数组,其中包含:Facebook,Twitter
非常感谢!
最佳答案
我确定我完全理解问题所在。我假设 $.get 中的 socialMediaServ[i] 值未定义。
我会尝试将每个数组值存储在循环范围内的变量中:
for(var i=0;i<socialMediaServ.length;i++)
{
(function(){
dialog_buttons["Upload naar "+socialMediaServ[i]]= function()
{
$("#wait-dialog").dialog(
{
modal: true,
resizable: false,
draggable: false,
width:305,
height:125,
my:'center',
at:'center',
open: function(){}
});
$.get("../includes/social/"+socialMediaServ[i]+"/upload.php",{functie: "checkUser", fotonaam: fotoNaam}, window['users_'+socialMediaServ[i]+'_check'], 'json');
}
})(i);
};
关于javascript - 如何在对话框按钮函数中获取 JS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13375577/