好的,我已经看了几个问题,现在感到很困惑。
我有一个代码说:
var basket = null;
function loadBasket(){
// do somesthing
basket = "something";
console.log(basket);
load();
}
function load(){
// do something with basket variable
}
loadBasket();
即使我之前已在loadBasket()函数中设置了load函数,load函数似乎也会返回null。我唯一能想到的就是我称之为功能的顺序。我在其他网站上有类似的功能可以正常工作,但事实并非如此。订单是否有我遗漏的东西。如果有人不介意的话,请有人解释一下。
控制台日志返回我所取代的"",所以为什么以下函数无法识别新更改的变量。
编辑:
好吧我设置它是因为我不清楚回调并使用帖子请求。所以真正的功能与此相似。
var basketId = readCookie('basket');
function loadBasket(){
$.post("test.php", {"email":email}, function(data){
if(data = 0){
basketId = readCookie('basket');
}
if(data == null){
basketId = data;
}
else{
basketId = data;
console.log(basketId);
load();
}
});
}
function load()
if(basketId == null){
console.log(basketId);
//do something
}
else{
$.post('basket.php', {"basketId":basketId}
}
}
pageLoad();
它有点复杂,但想法是一样的,虽然它会起作用,但它确实没有用,但即使console.log显示了basketId的数据也没有。在加载部分,即使其他console.log显示basketId发生更改,它也就像篮子为空一样。就像我说的那样,我在其他页面上有其他功能,但是相同但是有效。
编辑2:
其他有效的功能:
var basketId = readCookie("basket");
function loadTables(){
if(something){
$.post("test.php", {"basketId":basketId}, function(data){
//do something with data
});
}
else{
//do something
}
}
function loginCheck(){
if(something){
$.post("test2.php", {"email":email}, function(data2){
if(something){
createCookie('basket', data2, 0);
basketId = data2;
loadTables();
}
else{
return false;
}
});
}
else{
return false;
}
}
loginCheck();