0

私はこのコードを持っています:

var products = [];

$(document).ready(function($){  

    $.fn.load_products = function(){      
        $.getJSON('/restaurant/get_products',function(data){
            products = data[0];
            alert(products[0]['idProduct']);//this works fine           
        });
        // EDITED: alert was here, but was a mistake sorry
    }

    $.fn.draw_products = function(){
        alert(products[0]['idProduct']); //this doesn't work            
    }

    $(this).load_products();      
    $(this).draw_products();
}  

グローバルスコープで製品が宣言されていますが、load_products内で再定義されているようです。

これを実行すると、products[0]が未定義であると表示されます。

編集:いくつかの追加情報。アラートの実行後、コンソールにエラーが表示されます。

4

1 に答える 1

1

これdraw_productsは、AJAX呼び出しがload_products返される前に呼び出されるためです。draw_productsAJAX呼び出し内でコールバックを呼び出す必要があります。

于 2013-03-08T18:03:18.317 に答える