[英]jquery.post and variable scope
我是javascript新手,有以下問題。 我想從api.php加載一些json,然后使用返回值成功填充我的GUI。
$( '#data_button' ).click(function() {
$.post( 'api.php', function( data ) { json = data; });
$('#data1').empty().append( json[0].name + ' | ' + json[1].name );
});
所以我想單擊一個按鈕,然后通過發布獲取一些數據並將其保存到變量數據中。 因為它應該是一個對象(json對象?),所以我認為我可以像上面一樣使用它...但這是行不通的。 控制台說:找不到變量json。
有什么提示嗎?
您可以在post回調函數之外進行追加。 嘗試這個:
$( '#data_button' ).click(function() {
$.post( 'api.php', function( data ) {
json = data;
$('#data1').empty().append( json[0].name + ' | ' + json[1].name );
});
});
jQuery post作為默認異步工作,這意味着該行:
$('#data1').empty().append( json[0].name + ' | ' + json[1].name );
在發布請求返回數據之前發生。
這應該怎么做:
$( '#data_button' ).click(function() {
$.post( 'api.php', function( data ) {
$('#data1').empty().append( data[0].name + ' | ' + data[1].name );
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.