我發佈了一個類似的問題,但由於堆棧溢出死得很快,我覺得我沒有得到答案。從jquery成功傳遞變量
有時我不明白的東西,除非它做到我的代碼。人們傾向於非常糟糕地解釋事情。例如:How do I return the response from an asynchronous call?
在第一個答案中,他解釋瞭如何重構代碼。但是他沒有正確解釋這些步驟。他沒有解釋什麼是回調或結果。他只是把它們扔到那裏。我假設他正在給出多個關於如何去做的例子,但他沒有解釋使用什麼。
以下是我的代碼,我本來有:
var admin_data = false;
function getPlayerAdmin(admin_data){
var formData = {
'player_id' : $('#post-v').attr('data-val')
};
$.ajax({
type: 'post',
url: '/popins/player/controls',
data : formData,
dataType : 'json',
success: function(admin_data_vals, admin_data) {
if(admin_data_vals.controls.is_admin == true){
admin_data = true;
}else{
admin_data = false;
}
},
error : function(jqXHR, textStatus, errorThrown){
console.log(jqXHR);
}
});
}
getPlayerAdmin();
alert(admin_data);
以下是我試圖重組基於他......例如:
var admin_data = false;
var result = getPlayerAdmin();
getPlayerAdmin(function(result) {
if(admin_data_vals.controls.is_admin == true){
admin_data = true;
}else{
admin_data = false;
}
});
function getPlayerAdmin(callback){
var formData = {
'player_id' : $('#post-v').attr('data-val')
};
$.ajax({
type: 'post',
url: '/popins/player/controls',
data : formData,
dataType : 'json',
success: function(admin_data_vals, callback) {
},
error : function(jqXHR, textStatus, errorThrown){
console.log(jqXHR);
}
});
}
getPlayerAdmin();
alert(admin_data);
我試圖讓這個變量不在這裏,所以我可以在另一個函數中使用它。
我很困惑,非常感謝幫助。
你會想'alert(admin_data);'在回調函數中,並從那裏使用它。並改變你的成功函數:'成功:函數(數據){回調(數據)}' – nicovank
什麼是回調函數? –
回調函數是您作爲參數傳遞的函數,即成功調用的函數。 – nicovank