/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Variabel ind i funktion på event-handler
Fra : Lars


Dato : 02-06-06 10:58

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);


 
 
Søg
Reklame
Statistik
Spørgsmål : 177553
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste