Oop/variabler i loops

Tags:    javascript

<< < 12 > >>
Hej,
Jeg sider med et "nybegynder" problem. Jeg har et loop der løber igennem nogle DIV's på en hjemmeside og til hvert af disse til føjer et onclick scrit. Mit problem er at jeg skal sende et ID videre, men dette ID bliver altid det sidste div i loopet.

Fold kodeboks ind/udJScript kode 



Scriptet bliver kørt onload.

( det er et længere script jeg har bare forkortet det for forståelsen )

Så når jeg kører scriptet så alerter det til at starte med de forskellige id's fint. Men når jeg bruger onclick får jeg altid det sidste ID i rækken af ID's. ( håber i forstår ).
Håber I kan hjælpe.
/Søren





Indlæg senest redigeret d. 12.07.2012 14:54 af Bruger #17304
12 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Prøv følgende (ikke testet):
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 13.07.2012 09:08 af Bruger #2695
Umiddelbart lidt svært at se udfra den kode der, men mit bud er at din divId bliver overskrevet hver gang løkken køres igennem, prøv med
Fold kodeboks ind/udJScript kode 




Indlæg senest redigeret d. 12.07.2012 15:13 af Bruger #16977
Hej,
Desværre hjalp ikke.
Jeg havde også selv regnet med at det var noget i den stil. Men jeg er ikke helt sikker på hvordan jeg undgår at den bliver overskrevet, men opretter en ny hver gang.

/Søren



nu ved jeg ikke hvad det skal bruges til men var det ikke en mulighed at gøre sådan her på din onclick:

Fold kodeboks ind/udHTML kode 

Fold kodeboks ind/udJScript kode 




Hej Kenneth,
Desværre, det ville ellers være rart. Men det skal bruges til en tabel hvor der så i hver linje bliver tilføjet et div som indeholder et fileupload (jquery )script. Så derfor har jeg gjort det på denne lidt indviklet måde.
Men jeg kunne på en måde godt tænke mig af vide om denne metode kan bruges.. altså hvis man ser bort fra fileupload scriptet.

/Søren



JavaScript er kun funktionsscope. Dvs. den laver ikke et nyt scope inde i løkker. Der er kun en enkelt divId. Så når din løkke er kørt helt igennem er divId den sidste værdi.

I din onclick kode prøver den så at finde divId når den kaldes og siden den nu har den sidste værdi er det det sidste id der udskrives. Og siden alle funktionerne bruger den samme variabel er det den samme id.

Uden det rigtige kode kan jeg ikke fortælle dig hvordan du fikser udover at sige at den typiske måde at løse det på er at binde divId i en closure.



du bliver nød til at poste noget mere kode så, kan ikke se nogen fejl der, det må der hvor du laver din onclick det går galt.



Jeg prøver lige at ryde lidt op i det så får I noget ekstra kode :)
.. i morgen



tror nok vi kan overskue det =)



<< < 12 > >>
t