在$ .get函数之外使用变量

时间:2013-11-06 09:51:34

标签: jquery json

我在使用$ .get函数之外的变量时遇到问题,找不到变量并且脚本停止。

我该怎么办?

$.get("../ajax.php", function (data) {
    var json = JSON.parse(data);
    test = json['jquery']['test'];
});

alert(test)

更新:(这解决了我的问题) 我用$ .get得到了json。并将其传递给我的函数,json将能够在稍后的脚本中获取。

$.get("../ajax.php", function (data) {
function(data) {                    
    loadApp(data);
});

function loadApp(data) {    
    json = JSON.parse(data);                
}

1 个答案:

答案 0 :(得分:0)

由于它是异步调用,因此必须在回调函数中进行所有处理。将您的alert(test)放入回调函数中。

修改

$.get("../ajax.php", function (data) {
    var json = JSON.parse(data);
    test = json['jquery']['test'];

    alert(test); // Needs to be processed in this scope
});

这是因为JavaScript处理器逐行读取,检测到ajax-call并发送它,然后跳转到alert,它将尝试警告不存在的变量。即使你将它宣布为gobally它也不会起作用;因为AJAX-return是异步的,因此将与其他代码并行执行。