bosannes Skrevet 19. juli 2006 Del Skrevet 19. juli 2006 (endret) Sliter fælt med denne. Har følgende funksjon: function playlistnumber(theKey) { var x = null; if( theKey > wo.playlist.position ) { var skipp = theKey - wo.playlist.position; for (var x = 1; x <= skipp; x++) { wo.skip(); ShowMessage( theKey ); } } else if( theKey < wo.playlist.position ) { var previouss = wo.playlist.position - theKey; for (var x = 1; x <= previouss; x++) { wo.previous(); ShowMessage( theKey ); } } ShowMessage( "Hello" ); } som jeg ønsker å utføre etter en viss tid. Prøver følgende kode for å få det til: setTimeout("playlistnumber(theKey)", 1000); Koden utføres ikke i det hele tatt, så jeg prøvde å fjerne anførselstegnene rundt funksjonen: setTimeout(playlistnumber(theKey), 1000); Da funker funksjonen, men den blir utført med en gang (altså, den venter ikke på de 1000 millisekundene). Hva er det jeg gjør feil? Kan det ha noe å gjøre med at setTimeout kalles inne i en funksjon som ligger på samme nivå som playlistnumber()? Altså slik: -playlistnumber() -mykeypad_KeyDown() --setTimeout() PS: ShowMessage-ene er bare for debugging Endret 19. juli 2006 av bosannes Lenke til kommentar
geir__hk Skrevet 20. juli 2006 Del Skrevet 20. juli 2006 Ting du kan prøve ut: * Bruke ' istedet for vanlig anførselstegn. * Kanskje nettleseren feiltolker "1000" som tekst. Prøv med parseInt(1000) å se om det hjelper. * Se om det kan være feil en annet sted i koden. Lenke til kommentar
bosannes Skrevet 20. juli 2006 Forfatter Del Skrevet 20. juli 2006 Har prøvd med enkle anførselstegn, rammeverket tolker 1000 som tall og jeg vet det er der feilen sitter. Leste litt rundt, og fant ut at ved bruk av egne funksjoner i setTimeout kjøres funksjonen med en gang, men at resultatet ikke skal returneres før den anngitte tida. Da det uansett ikke var noe resultat jeg "ventet" på ville det ikke funke uansett. Endte opp med å skrote hele setTimeout-ideen og heller måle tiden mellom verdt klikk. Hele poenget var å legge sammen tall som ble anngitt med under 500ms mellomrom. Snutten under viser hva jeg endte opp med: var keystroke = null; var now1 = null; var now2 = null; now2 = Date.parse(new Date()); var tallet = keystroke + "" + theKey; if( now2 - now1 <= 500 && tallet <= wo.Playlist.Count ) { playlistnumber( tallet ); keystroke = null; } else { playlistnumber( theKey ); keystroke = theKey; } now1 = Date.parse(new Date()); Lenke til kommentar
Drømmemannen Skrevet 20. juli 2006 Del Skrevet 20. juli 2006 Jeg tror problemet ditt har å gjøre med theKey som du sender som argument til funksjonen i setTimeout. Kanskje følgende side kan hjelpe: http://www.tek-tips.com/faqs.cfm?fid=632 Lenke til kommentar
bosannes Skrevet 20. juli 2006 Forfatter Del Skrevet 20. juli 2006 Jeg tror problemet ditt har å gjøre med theKey som du sender som argument til funksjonen i setTimeout. Kanskje følgende side kan hjelpe: http://www.tek-tips.com/faqs.cfm?fid=632 6523554[/snapback] Takk. Ser ut til å være det jeg lette etter Jaja... sååååååååååå nære Tror uansett den nye løsningen min er mer heldig, så jeg kommer ikke til å endre den. Drømte om javascript jeg ikke kunne løse i hele natt Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå