【发布时间】:2015-11-19 21:35:58
【问题描述】:
我知道这个问题的答案可能很明显,但我似乎被卡住了,所以我决定问一个问题。
在我的 jQuery $(document).ready 函数中,我创建了一个名为 logged 的变量。我是这样设置的:var logged = 0;
接下来我有一个代码块,根据返回的数据将logged 变量设置为1 或不更改它。
$.post("url/script.php",
function(d, s){
if (s) {
if (d == "1") {
logged = 1;
}
if (d == "0") {
//Do stuff
}
} else {
//Do other stuff
}
console.log(logged); //Prints 1
});
在下面我有一个if 语句,用于检查是否记录了1,但上面的console.log 命令显示logged 变量已重置为0:
console.log(logged); //Prints 0
if (logged == 1) {
//Do stuff
}
有人知道为什么吗?
提前致谢。
【问题讨论】:
-
它没有被重置,它是在一个异步调用中设置的 - 你的
if逻辑在调用完成之前正在运行。
标签: javascript jquery variables scope