Avatar billede mik789 Nybegynder
13. maj 2002 - 09:42 Der er 9 kommentarer og
1 løsning

afslutte en onClick event

Kan man på en eller anden måde afslutte en onClick event? Jeg har en liste med links, og vil godt have at klik på et link understreger linket, f.eks.:

<a href="nyside.html" target"rammenavn" onclick="this.style.textDecoration = 'underline';">

Det virker også fint, men så skal denne tilstand i DETTE link standse (dvs. textDecoration = 'none') når der klikkes på et andet link, der så bliver det understregede. Nogle forslag?
Avatar billede mik789 Nybegynder
13. maj 2002 - 09:43 #1
hov! target="rammenavn" s'føli'
Avatar billede keysersoze Ekspert
13. maj 2002 - 09:54 #2
alt afhængig hvornår det skal stoppes kan du jo fx lave en;

onmouseout="this.style.textDecoration = 'none';"
Avatar billede mik789 Nybegynder
13. maj 2002 - 10:02 #3
keysersoze> nej, det er ikke nok. Underline skal fortsætte frem til næste kllik på et link i listen. Inden da har man i lang tid haft mouseout ved det første link.
Avatar billede jakoba Nybegynder
13. maj 2002 - 10:22 #4
Det kan du godt, men det er lovlig stort til at ligge bekvemt i en onclick handeler:

<script type='text/javascript'>

var huskStil = null; // husker den der sidst blev underlinet.

function gorVedKlik( styleObj ) {
    if ( styleObj != huskStil ) {
        if ( huskStil != null ) {
            huskStil.textDecoration = 'none';
        }
        styleObj.textDecoration = 'underlined';
    }
}; //end gorVedKlik( Style object )

</script>

dit link med onclick bliver så:
<a href="nyside.html" target"rammenavn" onclick="gorVedKlik( this.style );">

bemærk at der kommer od i det hvis din CSS til hover eller andet sætter text-decoration.

mvh JakobA
Avatar billede jakoba Nybegynder
13. maj 2002 - 10:24 #5
Ups, jeg glemte næsten det allervigtigst:

        styleObj.textDecoration = 'underlined';
        huskStil = styleObj;  // tilføjet linie
    }
}; //end gorVedKlik( Style object )
Avatar billede mik789 Nybegynder
13. maj 2002 - 10:29 #6
jakoba> det prøver jeg!

>bemærk at der kommer od i det hvis din CSS til hover eller andet sætter text-decoration.<

- også hvis jeg i stedet for hover i css lægger det ned i linket sådan:

<a href="nyside.html" target"rammenavn" onmouseover="this.style.textDecoration='underline'" onclick="gorVedKlik( this.style );">  ???
Avatar billede mik789 Nybegynder
13. maj 2002 - 10:53 #7
Det virker fint! og hvis jeg tvært imod hvad jeg foreslog før, bevarer a:hover { text-decoration:underline; } i mit eksterne css, opstår der ingen konflikter. Jeg har underline ved hover og jeg bevarer samtidig underline på den enkelte link ved klik. takker igenigen!
Avatar billede mik789 Nybegynder
13. maj 2002 - 10:58 #8
jakoba> nå, jeg var lidt for hurtig - det går ikke rigtig med hover, heller ikke i eksternt stylesheet. efter at der har været klikket på alle links reageres der ikke længere på hover. er det besværligt med en løsning på det?
Avatar billede jakoba Nybegynder
13. maj 2002 - 14:31 #9
Så kommer vi nok til at gøre det hele med javascript. dvs ikke nævne tekst-decoration i nogen css-style:

<script type='text/javascript'>

var huskStil = null; // husker den der sidst blev underlinet.

function gorVedKlik( styleObj ) {
    if ( styleObj != huskStil ) {
        if ( huskStil != null ) {
            huskStil.textDecoration = 'none';
        }
        // har fjernet sætning af underline da der jo kun
        // kan klikkes efter hover
        huskStil=styleObj;
    }
}; //end gorVedKlik( Style object )

function gorVedHover( styleObj ) {
    if ( styleObj != huskStil ) {
        styleObj.textDecoration = 'underlined';
    }
}; //end gorVedHover( Style object )

function gorVedOut( styleObj ) {
    if ( styleObj != huskStil ) {
        styleObj.textDecoration = 'none';
    }
}; //end gorVedOut( Style object )

</script>

<a href="nyside.html" target"rammenavn"
    onmouseover="gorVedHover( this.style );"
    onmouseout="gorVedOut( this.style );"
    onclick="gorVedKlik( this.style );">klikketekst</a>
Avatar billede mik789 Nybegynder
14. maj 2002 - 10:07 #10
det fungerer fint bort set fra en enkelt ting: når jeg åbner siden er alle links understregede (de skal være uden understregning ved mouseout - også når siden åbnes). når jeg så kører musen henover linkene (altså mouseover) fjernes alle understregninger i første omgang. først derefter virker det hele som det skal: nu giver mouseover understregning, klik understregning indtil klik på næste link, og mouseout ingen understregning.
bare lad det ligge hvis du ikke umiddelbart kan se hvad der galt. jeg kan så selv prøve at eksperimentere med det.
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