如何使用jquery的全局变量?

时间:2016-07-30 21:08:48

标签: javascript jquery web

我有一个代码,如下所示。

var globalVar = ''
$.get("some.php", function(data, status)
{
    alert(data)
    globalVar = data
});
alert(globalVar)

虽然第一个警报显示数据的值,但第二个警报不显示。似乎globalVar没有在get函数中正确分配。在这里使用全局变量的正确方法是什么?

2 个答案:

答案 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);
});