簡體   English   中英

jquery.post和變量范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM