无法访问全局变量

时间:2015-04-16 23:12:13

标签: javascript jquery

我已经宣布了一个全局变量

var cart = [];
var cartTotal;

$(document).ready(function()
{

        if(typeof cartTotal != 'undefined')
{
    alert(cartTotal);
}
else
{
    alert("cartTotal is undefined");
}

        loadJSON();



}); 

然后我通过loadJSON等后来在函数中更改它。

function addToBasket(item)
{
$.getJSON("products.json", function(result) 
{
    for (var i in result.products) 
    {
        var itemToAdd = result.products[i].idCode;

        if(item == itemToAdd)
        {
            if(typeof cartTotal == 'undefined')
            {
                cartTotal = "";
                cartTotal = cartTotal + parseFloat(result.products[i].price);   
                document.getElementById("currentTotalCost").innerHTML = "£" + cartTotal;
            }
            else
            {
                cartTotal = parseFloat(cartTotal) + parseFloat(result.products[i].price);
                document.getElementById("currentTotalCost").innerHTML = "£" + cartTotal;
            }
        }
    }
});
cart.push(item);
alert(cart);
}   

但是当我在更改值后尝试在另一个函数中的其他位置访问cartTotal时,它会抛出一个未定义的消息,而且我完全不知道为什么。我已经尝试在再次运行loadJSON时设置警报,因为我知道什么时候会运行,但它只是说未定义,即使从addToBasket去了它。

感谢。

0 个答案:

没有答案