-3

我在 jQuery 中使用 $.getJSON 函数实时获取 JSON 数据。我将此数据分配给此函数中的一个变量。但是我不能在这个函数之外使用这个变量。我想在 jQuery 代码中到处使用这个变量。我能做些什么?

var anlikwar;
var anlikflood;
$.getJSON("ayarlar.asp",function(veri) {
$(".wfloodnum").html("Şu anki değer:" + veri.floodwarno);
});
var yenile = setInterval(function() {
$.getJSON("ayarlar.asp",function(veri) {
$(".wfloodnum").html("Şu anki değer:" + floodwarno);
anlikwar = veri.floodwarno;
});
},100);
$.getJSON("ayarlar.asp",function(veri) {
$(".nfloodnum").html("Şu anki değer:" + veri.floodnum);
});
var yenile = setInterval(function() {
$.getJSON("ayarlar.asp",function(veri) {
anlikflood = veri.floodnum
$(".nfloodnum").html("Şu anki değer:" + veri.floodnum);
});
},100);
4

3 回答 3

1

您可以(正如凯文所说的在外部定义变量)或者您可以定义要对变量执行的函数并像这样调用它。

function doSomething(thedata)
{
    /// yay we have data
}


function getData() {
   $.getJSON()
     .done(function (r) {
        doSomething(data);
     });
}

这通常被认为比拥有一个全局变量更好。

于 2013-06-30T12:37:03.147 回答
0

您需要在函数之外定义变量。

var data;

function getData() {
    $.getJSON().done(function(result) { 
        data = result;
    }
} 
于 2013-06-30T12:32:08.577 回答
0

在没有看到您的代码的情况下,我可以告诉您在接收数据之前将数据分配给变量。

根据定义,AJAX 是异步的 - 查找首字母缩写词。在您实际从服务器收到数据之前,您无法分配您在响应中收到的数据。使用回调函数成功(或完成)对数据执行您想要的操作。

$.getJSON({
    //..params
    //..params
    success: function(r,status,jqXHR) {
        //your data is in variable r
    }
}).done(function(r,status,jqXHR) {
    //your data is in variable r
})

话虽如此,如果您有与代码相关的问题,请在 stackoverflow 上发布。

于 2013-06-30T12:36:17.330 回答