Het probleem hier is dat aan de lijn
myar[0] = "http://site.com/"+idPartner;
..je voert een string-aaneenschakeling uit, wat betekent dat je de resulterende string kopieert naar de array op indexpositie 0.
Daarom heeft het bij het later instellen van idPartner
geen effect op de eerder gekopieerde reeks. Om een dergelijk effect te voorkomen, kunt u de reeks altijd opnieuw construeren wanneer de variabele idPartner
wordt bijgewerkt of u maakt een object en evalueert het wanneer u het nodig hebt, zoals ...
var MyObject = function(){
this.idPartner = 0; //default value
};
MyObject.prototype.getUrl = function(){
return "http://site.com/" + this.idPartner;
};
Op deze manier zou je het kunnen gebruiken
var myGlblUrlObj = new MyObject();
$.address.change(function(event){
myGlblUrlObj.idPartner = ... /setting it here
});
op een later tijdstip kun je dan altijd de juiste URL gebruiken
myGlblUrlObj.getUrl();
Nu hangt het natuurlijk af van de complexiteit van uw situatie. Misschien kan de voorgestelde array-oplossing ook werken, hoewel ik er de voorkeur aan geef hem ergens in een object te laten inkapselen voor een betere herbruikbaarheid.