jQuery全局变量使用

时间:2013-03-08 17:58:37

标签: jquery

我有这段代码:

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中重新定义。

当我执行此操作时,它表示产品[0]未定义。

编辑:一些额外的信息。警报执行后,控制台中出现错误。

1 个答案:

答案 0 :(得分:1)

这是因为draw_productsload_products中的AJAX调用返回之前被调用。您需要在AJAX调用中的回调中调用draw_products