Avatar billede lightbrain Nybegynder
30. juni 2002 - 21:37 Der er 4 kommentarer og
1 løsning

setTimeout i dropdown-box

Hej

Jeg har en dropdown-box, hvori der skældnes mellem et dobbeltklik eller et enkeltklik. Problemet er bare enkeltklikket aldrig bliver opdaget, hvorved funktionen "checkPile" aldrig bliver kørt.

Hvorfor?

.
.
.
function checkPile (form, element) {

    alert(element.name);
   
    if ( MenuNotEmpty(element)) {
           
        if (element.name == "artikel") {
            form.ikkePlaceret.selectedIndex = -1;

            if (element.selectedIndex == 0 )
                form.Op.disabled = true;
            else
                form.Op.disabled = false;
       
            if (element.selectedIndex == element.options.length - 1 )
                form.Ned.disabled = true;
            else
                form.Ned.disabled = false;
        }
    }
}
.
.
.
<select name="artikel" style="width: 120px" onDblClick="flyt(this.form, this);" onClick="forsinkelse = setTimeout('self.checkPile(this.form, this);', 50);" size=5></select>
Avatar billede jakoba Nybegynder
30. juni 2002 - 22:21 #1
du kan ikke bruge this i en setTimeout streng.

det setTimeout gør er at tage strrengen
    'self.checkPile(this.form, this);' 
og gemmer den i en kø med desked om at den skal evalueres om 50 millisekunder.

halvtreds millisekunder efter udføres så
    window.eval( 'self.checkPile(this.form, this);' );
så this peger altså på window på det tispunkt hvor strengen bliver udført.

du skal benytte paramtre der enten er konstanter eller komplette adresser der kan forstås globalt:

<select name="artikel" style="width: 120px"
    onDblClick="flyt(this.form, this);"
    onClick="forsinkelse = setTimeout('self.checkPile(document.ditFormNavn, document.ditFormNavn.artikel);', 50);"
    size=5>
</select>

mvh JakobA
Avatar billede =maddog= Nybegynder
01. juli 2002 - 00:29 #2
eller lave din setTimeout inde i checkpile, hvis det er hensigten at funktionen altid skal udføres med tidsbegrænsning.
Avatar billede lightbrain Nybegynder
01. juli 2002 - 19:30 #3
Det virker - tak for hjælpen :-)

Please, tag lige et hurtigt kig (nede i bunden) af "Specialtegn": http://www.eksperten.dk/spm/228028
Avatar billede jakoba Nybegynder
01. juli 2002 - 20:25 #4
lighbrain >> De 4 sidste gange du sådan har skrevet en reference havde jeg faktisk været der før jeg så referencen.
Også dennegang :-))

tak for pts.
Avatar billede lightbrain Nybegynder
01. juli 2002 - 20:29 #5
Ok, du er bare hurtig ;)

Jeg vil tænker mere over brugen af referencer.
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