2016-04-01 16 views
1

Ich habe eine lokale Variable mit einer JQuery-Funktion. Bei jeder Ausführung der Funktion behält die Variable Daten aus dem vorherigen Lauf bei.JQuery lokale Variable wird nicht zurückgesetzt

Ich habe versucht:

delete myVar; 
myVar = undefined; 

sowohl am Anfang der Funktion, aber die alten Daten weiterhin bestehen. Was mache ich falsch ?

$.get("http://api.lmiforall.org.uk/api/v1/ashe/estimatePay", 
{ soc: soc, coarse: "false", filters:"region:12"}, 
function(datani) { 
nipay=undefined; // clear variable data 
nipay = maxBy("year", datani.series).estpay ; // load data into variable 
if(nipay) { //check that variable contains data 
} 
else { 
    nipay="Not available"; // Message if no data 
} 
$("#graph-box1").html("<p><b>NI:</b> " + nipay + " GBP/week </p>") // display the result 

}); 
+1

Zeigen Sie die Funktion. –

+1

Wenn Sie Ihren Code anzeigen können, können wir möglicherweise den Fehler finden –

+0

Können Sie myVar = '' oder myVar = 0 entsprechend der Art Ihrer Daten tun? – Niraj

Antwort

3

Ihre Variable wird im Rahmen der Funktion nicht erklärt, weil Sie eine var Erklärung sind vermisst. In diesem Fall wird es im globalen Gültigkeitsbereich deklariert, und daher wird der Wert aus dem vorherigen Lauf beibehalten, da die Variable im globalen Gültigkeitsbereich beibehalten wird.

var nipay = maxBy("year", datani.series).estpay; 
+0

Danke dafür. OK Ich habe es gerade mit var nipay versucht, aber die alten Daten bleiben bestehen, wenn neue Daten aufgrund eines Fehlers nicht geladen werden können. – Bizzy

Verwandte Themen