在jQuery中使用函数外的变量

在jQuery中使用函数外的变量,jquery,ajax,Jquery,Ajax,我使用jQuery中的$.getJSON函数实时获取JSON数据。我将此数据分配给此函数中的一个变量。但是我不能在这个函数外使用这个变量。我想在jQuery代码中的任何地方都使用这个变量。我能做什么 var anlikwar; var anlikflood; $.getJSON("ayarlar.asp",function(veri) { $(".wfloodnum").html("Şu anki değer:" + veri.floodwarno); }); var yenile = setI

我使用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);

您需要在函数外部定义变量

var data;

function getData() {
    $.getJSON().done(function(result) { 
        data = result;
    }
} 

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

根据定义,AJAX是异步的——请查阅首字母缩略词。在实际从服务器接收数据之前,无法分配在响应中接收的数据。使用回调函数success或done来处理数据

$.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上,如果您有一个与代码相关的问题,您应该发布它。

您可以像Kevin所说的那样从外部定义变量,或者您可以定义要对变量执行的函数,并这样调用它

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


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

通常认为这比使用全局变量要好。

我有一种预感,OP试图在从服务器实际返回变量之前将响应分配给变量。可能性更大。我怀疑我们是否会从他们那里听到任何代码,或者它没有发生。添加一些代码,这样你会让他们感到高兴