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_products在 AJAX 调用中调用回调。

于 2013-03-08T18:03:18.317 回答