我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