2013-06-30 39 views
-3

我使用jQuery中的$ .getJSON函數實時獲取JSON數據。我將此數據分配給此函數中的一個變量。但是我不能使用這個變量。我想在jQuery代碼中隨處使用這個變量。我能做什麼?在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); 
+1

代碼,或它沒有發生。 – moonwave99

+1

添加一些代碼,這樣你讓downvoters觸發開心 – OzrenTkalcecKrznaric

回答

0

您需要在函數之外定義變量。

var data; 

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

我有一個預感OP是試圖分配響應之前,它實際上是從服務器返回的變量。 – Adam

+0

可能性更大。我懷疑我們會從他們那裏收到任何回覆 –

+0

我試過了,但它沒有解決我的問題。 – Lightsaber

0

沒有看到你的代碼,我可以告訴你在收到數據之前將數據分配給變量。

根據定義,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,如果你有一個問題有關你的代碼,你應該真的發佈它。

+0

我試過了,但它也沒有解決我的問題。 – Lightsaber

1

你可以(就像凱文說的那樣在外部定義變量)或者你可以定義你想對變量執行的函數,並像這樣調用它。

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


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

這通常被認爲比擁有全局變量更好。