Avatar billede superjma Nybegynder
20. maj 2003 - 20:37 Der er 6 kommentarer

JavaScript i CSS

Hej

Er det muligt at skrive JavaScript i en CSS.
Tanken er at linien:
<td id="knap2" class="menu" onClick="Link(id,'test.html');" onmouseover="mouseover('knap2');" onmouseout="mouseout('knap2');"> skulle forkortes med CSS. Således at man kunne nøjes med at skrive:

<td id="knap1" class="menu" onClick="Link(id,'test.html');">Link1</td>

Og lade OnMouseOver og OnMouseOut styres af CSS således at man slipper for at skrive det flere gange..
Avatar billede roenving Novice
20. maj 2003 - 20:41 #1
Hvad udfører din mouse-events ...

Hvis de laver nogle style-ændring, så burde du næsten altid kunne klare det med en 'sub-class' à la:

.menu{...}
.menu:hover{...}
Avatar billede superjma Nybegynder
21. maj 2003 - 19:05 #2
Skifter blot baggrundsbillede.. Problemet er at det der sidst er blevet trykket på skal forblive "nedtrykket".

<script language=JavaScript>
    last_id='knap0';

    function Link(id,ref){
        temp_id=last_id;
        parent.main.location.href=ref;
        last_id=id;
        mouseout(temp_id);
    }

    function mouseover(id){
        if(id!=last_id)document.getElementById(id).style.backgroundImage = 'url(knap2.gif)'
    }

    function mouseout(id){
        if(id!=last_id)document.getElementById(id).style.backgroundImage = 'url(knap1.gif)'
    }
</script>
Avatar billede roenving Novice
21. maj 2003 - 19:13 #3
Du kan sagtens lave nummeret, for hvis du ændrer en property i style undervejs har den forrang

du skal bruge sådan noget lignende:

#knap1{background-image:url(knap1.gif)}
#knap1:hover{background-image:url(knap2.gif)}

#knap1 refererer til id'en knap1

-- jeg har ikke selv prøvet noget sådant, men teknikken skulle jo også være nok ...
Avatar billede superjma Nybegynder
05. juli 2003 - 20:52 #4
Undskyld det meget sene svar. Men jeg har haft travl med alt muligt andet.
Nu har jeg forsøgt som du sagde men jeg kan ikke få det til at virke.

<HTML>
<BODY>
<HEAD>
<STYLE TYPE="text/css">
knap1{background-image:url(knap1.gif)}
knap1:hover{background-image:url(knap2.gif)}
</style>
</HEAD>
<body>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="knap1" class="menu">Link1</td>
</tr>
<tr>
<td id="knap2" class="menu">Link2</td>
</tr>
<tr>
<td id="knap3" class="menu">Link3</td>
</tr>
<tr>
<td id="knap4" class="menu">Link4</td>
</tr>
</table>
</BODY>
</HTML>

Og hvordan skifter jeg CSS'en ud uden at kontakte serveren igen? CSS'en er så vidt jeg har forstået konstant hele tiden
Avatar billede roenving Novice
05. juli 2003 - 22:33 #5
Du har glemt mine #-tegn -- de er _meget_ vigtige, for i css identificerer selectors uden noget foran tags, og jeg kender ikke html-tagget knap1 (og det gør browseren heller ikke !-)

Derudover er den korrekte syntaks jo:

#knap1:hover{background-image:url('knap2.gif')}

-- jeg var vist lidt hurtig på tasterne ...

En ting, som jeg endnu ikke har set en god forklaring på er imidlertid i hvilket omfang browserne understøtter den del af W3C's anbefalinger for CSS2 ...

Alle browsere understøtter ovenstående for <A>-tags men hvor mange andre understøttes?-)
Avatar billede superjma Nybegynder
07. juli 2003 - 10:43 #6
Det virker stadig ikke.. (I Explorer 6 - det er den størstedelen af verdensbefolknigen bruger.. så hvis det ikke virker her har det ikke den ønskede effekt)
<HTML>
<BODY>
<HEAD>
<STYLE TYPE="text/css">
.menu td{
    padding-left:18px;
    background: url(knap1.gif);
    width: 160;
    height: 30;
    align: left;
    valign:bottom;
}

#knap1{background-image:url('knap1.gif')}
#knap1:hover{background-image:url('knap2.gif')}
</style>
</HEAD>
<body>
<table border="0" cellspacing="0" cellpadding="0" class="menu">
<tr>
<td id="knap1" href="">Link1</td>
</tr>
<tr>
<td id="knap2">Link2</td>
</tr>
<tr>
<td id="knap3">Link3</td>
</tr>
<tr>
<td id="knap4">Link4</td>
</tr>
</table>
</BODY>
</HTML>

Jeg prøvede endda at sætte en href ind i td-tag'et, men uden effekt.
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

IT-JOB

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Erhvervshus Hovedstaden S/I

Erfaren IT- og AI-specialist