我有一個代碼如下所示。如何使用jQuery的全局變量?
var globalVar = ''
$.get("some.php", function(data, status)
{
alert(data)
globalVar = data
});
alert(globalVar)
雖然第一個警報顯示數據的值,但第二個警報不顯示。似乎globalVar沒有正確地分配在get函數中。在這裏使用全局變量的正確方法是什麼?
我有一個代碼如下所示。如何使用jQuery的全局變量?
var globalVar = ''
$.get("some.php", function(data, status)
{
alert(data)
globalVar = data
});
alert(globalVar)
雖然第一個警報顯示數據的值,但第二個警報不顯示。似乎globalVar沒有正確地分配在get函數中。在這裏使用全局變量的正確方法是什麼?
可能會發生什麼事是你get()
功能沒有完成你最後alert()
是之前更新更好的方法被稱爲。爲了確保這些按順序發生,一旦收到文件,您可以將最後的alert()
置於回調中。
那麼試試這個來代替:
var globalVar = ''
$.get("some.php", function(data, status)
{
alert(data)
globalVar = data
}).done(function() {
alert(globalVar)
});
你可以試試這個
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);
});
這更多的是與「Ajax」的異步方面,而不是變量的作用域。在獲取完成之前調用第二個警報的可能性很大。 – Devon
是的,你是對的:)。 – pythonic