我已经宣布了一个全局变量
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去了它。
感谢。