我一直试图让我的全局变量值在运行函数test()
时改变,但它似乎无法工作,我不明白为什么。我已尝试在$(document).ready
jQuery代码之外声明变量,并且我也尝试使用window.testvar
无效。我可以在这里找到什么,以及如何解决这个问题,以便AJAX success
函数更改testvar
的值?
$(document).ready(function() {
testvar = '';
function test() {
$.ajax({
type: 'POST',
url: 'test.php',
data: { sessionUsername: $sessionUsername },
dataType: 'json',
success: function (data) {
testvar = '1';
console.log(testvar);
}
})
}
test(); // logs '1'
console.log(testvar); // logs nothing
};
答案 0 :(得分:2)
你的console.log在执行ajax succes函数之前运行..
你看,ajax函数是一个异步函数,这意味着它用完了你调用函数的块序列。