Avatar billede sbm Nybegynder
22. september 2006 - 15:50 Der er 4 kommentarer og
1 løsning

Timing problem

Jeg har et mystisk problem.

Jeg har lavet noget javascript kode, hvor en select-box skal opdateres afhængig af hvad der vælges i en anden select-box osv...

Det fungerer fint. I Firefox og Opera. I Explorer går den galt i byen, men her kommer det mystiske.

Hvis jeg indsætter f.eks. en alert('testing...') et mere eller mindre vilkårligt sted, så går det godt. Så snart jeg fjerner alert'en igen, går det galt igen. I flere select-boxe vælger den et element der er en enkelt for højt. Dvs. jeg forsøger f.eks. at sætte en
new Option('123','123',false,true)
på et Option objekt, da det skal være valgt på forhånd. Men det er elementet lige FØR der bliver valgt. Men kun i Explorer, og kun når jeg ikke indsætter en eller anden forsinkelse som f.eks. en alert-box.

Jeg ved ikke om det er et garbage-collection problem eller noget, men det giver mig grå hår.
Avatar billede htm Nybegynder
24. september 2006 - 12:58 #1
Prøv og kom med noget kode, det er svært at gætte hvad der er galt.
Avatar billede mclemens Nybegynder
24. september 2006 - 21:34 #2
Tyder umiddelbart på at IE's dom ikke rykker så hurtigt videre som de andres ved ikke om det ville hjælpe hvis du brugte newelm=document.createElement("option"); og satte attributterne og så appendede ...

- Ellers kunne man måske splitte funktionen og i 2 funktioner hvor variabler m.v. sendes fra den ene funktion videre til den anden - og den anden startede så via et setTimeout("funktionsnavn2()",10); opkald (ved ikke om IE's dom skal bruge mere end 10 ms...)

Men, som htm siger ville et eksempel på problemet rart ...
Avatar billede sbm Nybegynder
25. september 2006 - 09:05 #3
Skarpt set mclemens. Dit setTimeout forslag løste faktisk problemet. Det er faktisk nok at lave 1ms delay, idet det ekstra funtionskald åbenbart i sig selv skaber tid nok, til at DOM'en bliver genereret korrekt.

Smider du et svar?
Avatar billede mclemens Nybegynder
25. september 2006 - 09:09 #4
Ok :)
Avatar billede mclemens Nybegynder
25. september 2006 - 09:38 #5
Og tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester