var id = $(this).children().html(); // id is 5
$.ajax({
url: 'ajax.php?id=' + id,
success: function(data) {
id = data; // id is 1
}
});
if(id == 1){ // id is again 5
...
}
为什么在下面的示例中我无法重新初始化 id 变量?怎么了?
谢谢。
最佳答案
$.ajax()
函数必须去获取数据,它还没有完成此操作,并在它立即到达代码时执行您的成功回调。
您的代码顺序实际上是这样发生的:
var id = $(this).children().html();
//Ajax start
if(id == 1){ }
//Ajax end (sometime later, not immediately after)
function(data) { id = data; }
如果您依赖此值继续,请将其粘贴到成功回调中:
var id = $(this).children().html(); // id is 5
$.ajax({
url: 'ajax.php?id=' + id,
success: function(data) {
id = data; // id is 1
if(id == 1){ // id is now 1
...
}
}
});
关于javascript - jQuery全局变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2366113/