我有一个代码,如下所示。
var globalVar = ''
$.get("some.php", function(data, status)
{
alert(data)
globalVar = data
});
alert(globalVar)
虽然第一个警报显示数据的值,但第二个警报不显示。似乎globalVar没有在get函数中正确分配。在这里使用全局变量的正确方法是什么?
答案 0 :(得分:3)
可能发生的情况是,您的get()
函数在调用上一个alert()
之前未完成。为确保按顺序执行这些操作,您可以在收到文件后将最后alert()
放入回调中。
所以试试这个:
var globalVar = ''
$.get("some.php", function(data, status)
{
alert(data)
globalVar = data
}).done(function() {
alert(globalVar)
});
答案 1 :(得分:2)
你可以试试这个
var globalVar = false;
jQuery.ajax({
type: "GET",
url: 'some.php',
success: function (data) {
globalVar = true;
},
async: false // <- this turns it into synchronous
});
alert(globalVar);
我在这种情况下更新了更好的方法
var globalVar = false;
function getData(callback) {
$.ajax({
url: 'jsOnChange.php',
type: 'GET',
success: callback
})
}
getData(function(response) {
globalVar = true;
console.log(globalVar);
});