Jeg har en side med en række forskellige tal. Hver tal bliver med
javascript lavet om til et link, som får en onclick event handler.
Når man klikker på tallet, skal det automatisk sættes over i et
inputfelt.
Nedenstående script virker på nær en enkelt ret afgørende detalje.
account_number indeholder det rigtige nummer, når jeg lige efter
følgende linje skriver den ud med en alert.
var account_number = this.elmText.trim(); // en af vores egne
funktioner
Men account_number i følgende kodestump indeholder altid kun det
allersidste account_number, jeg forsøger at knytte til et link på en
side:
YAHOO.util.Event.addListener(this.newA, "click", function() {
account.write(account_number)
});
Hvordan kan det være, når det unde for funktionen indeholder det
rigtige tal?
Hele scriptet:
var account = {
init: function() {
if (!document.getElementsByTagName || !document.getElementById ||
!document.location.search.substring(1)) {
return;
}
this.elm = document.getElementsByTagName('th');
this.n = elm.length;
for (this.i=0;this.i<this.n;this.i++){
this.elmText = getInnerText(this.elm[this.i]);
var account_number = this.elmText.trim(); // en af vores egne
funktioner
if (!this.elmText) {
continue;
}
this.newA = document.createElement("a");
this.text = document.createTextNode(account_number);
this.newA.appendChild(this.text);
this.newA.href="#";
YAHOO.util.Event.addListener(this.newA, "click", function() {
account.write(account_number)
});
elm[i].replaceChild(this.newA, this.elm[i].firstChild);
}
},
write: function(v) {
window.opener.document.getElementById(document.location.search.substring(1)).value
= v;
window.opener.focus();
}
}
YAHOO.util.Event.addListener(window, "load", account.init);
|