我currntly有一个javascript AJAX调用一个匿名函数:将变量传递给引用函数?
(此代码已被削减到要领,可能有一些误差)
function call(name){
var type = services[name].type
$.oajax({
success: function(data) {
fbposts=data.data
if (type === "grupp"){
var postid=fbposts[fbpost].id.split("_");
return "https://www.facebook.com/groups/"+postid[0]+"/permalink/"+postid[1]+'/'
}
else if (fbposts[fbpost].actions){
return fbposts[fbpost].actions[0].link;
}
}
}
})
};
我想INSEAD使用
success: successfunction,
和参考值的功能是这样的:
function success(data) {
fbposts=data.data
if (type === "grupp"){
var postid=fbposts[fbpost].id.split("_");
return "https://www.facebook.com/groups/"+postid[0]+"/permalink/"+postid[1]+'/'
}
else if (fbposts[fbpost].actions){
return fbposts[fbpost].actions[0].link;
}
}
}
})
此时,类型变量不再被定义。我能以某种方式解决此问题吗?
你有没有尝试过将类型作为第二个变量?所以你将有函数successfunction(data,type){...},然后从成功传递类型作为参数:successfunction(data,type) – Kamal 2012-08-01 10:49:24
你在哪里定义函数?如果你不需要它在'call()'之外,你可以尝试在它内部定义它,因此它与'type'变量共享相同的范围。 – 2012-08-01 10:50:43