2016-04-01 1 views
1

J'ai une variable locale avec une fonction JQuery. Chaque fois que j'exécute la fonction, la variable conserve les données de l'exécution précédente.La variable locale JQuery ne sera pas réinitialisée.

J'ai essayé:

delete myVar; 
myVar = undefined; 

deux au début de la fonction, mais les anciennes données persiste. Qu'est-ce que je fais mal ?

$.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

Afficher la fonction. –

+1

Si vous pouvez montrer votre code, nous pourrions être en mesure de trouver l'erreur –

+0

Pouvez-vous faire myVar = '' ou myVar = 0 selon le type de vos données? – Niraj

Répondre

3

Votre variable n'est pas déclaré dans le cadre de la fonction parce que vous manquez une déclaration var. Dans ce cas, il est déclaré dans l'étendue globale et la valeur de l'exécution précédente est donc conservée, car la variable est conservée dans l'étendue globale.

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

Merci pour cela. OK, je viens de l'essayer avec var nipay mais les anciennes données persistent si les nouvelles données ne parviennent pas à charger en raison d'une erreur. – Bizzy