Avatar billede ktolbod Nybegynder
18. februar 2005 - 13:46 Der er 3 kommentarer

onClick skift bg i en og kun en td.

Hej

Jeg har 4 td'er, hvor man skal kunne trykke i en af de fire td'er, hvorefter baggrunden skal skifte fra #ffffff til #999999. Der må kun være en aktiv td, hvilket altså vil sige at den td som før var aktiv (#999999) skal være inaktiv (#ffffff)

Den aktive td kalder funktionen shift_bg med onClick, som så skal skifte bg på td'erne. Jeg har lavet følgende kode, men det virker sgu ikke rigtigt. Jeg er ikke nogen ørn til js.

<script language="JavaScript">
var akt = null;
function shift_bg(elm)
{
  if(aktiv != elm)   
  {
    document.getElementById(elm).style.backgroundColor="#999999";
    document.getElementById(akt).style.backgroundColor="#FFFFFF";
    akt=elm;
  } else {
    document.getElementById(elm).style.backgroundColor="#FFFFFF";
  }   
}
</script>

og de fire td'er:

<td id = "p1" ONCLICK = "java script:shift_bg('p1');" style="cursor: hand">Her med dig</td>
<td id = "p2" ONCLICK = "java script:shift_bg('p2');" style="cursor: hand">Her med dig</td>
<td id = "p3" ONCLICK = "java script:shift_bg('p3');" style="cursor: hand">Her med dig</td>
<td id = "p4" ONCLICK = "java script:shift_bg('p4');" style="cursor: hand">Her med dig</td>

På forhånd tak!
Avatar billede roenving Novice
18. februar 2005 - 13:58 #1
Du har vist to bogstaver for meget til at det kan virke ...

-- men du har også nogle mærkeligheder, som kan gøres meget bedre (og rigtigere !-)

<script language="javascript">
var akt = null;
function shift_bg(elm)
{
  elm.style.backgroundColor="#999";
  if(akt)
    akt.style.backgroundColor="#fff";
  akt=elm;
}
</script>

<body>
<table>
<tr>

<td id="p1" onclick="shift_bg(this);" style="cursor: pointer;">her med dig</td>
<td id="p2" onclick="shift_bg(this);" style="cursor: pointer;">her med dig</td>
<td id="p3" onclick="shift_bg(this);" style="cursor: pointer;">her med dig</td>
<td id="p4" onclick="shift_bg(this);" style="cursor: pointer;">her med dig</td>

</tr>
</table>
</body>
Avatar billede ktolbod Nybegynder
18. februar 2005 - 14:03 #2
Fedt!

Det er jo meget mere logisk sådan.
tak, smider du et svar roenving
Avatar billede roenving Novice
18. februar 2005 - 14:10 #3
Velbekomme '-)

-- og lige to bemærkninger:

-- det er ugyldig script-kode at bruge java script: pseudo-fil-direktivet i en script-event og også noget vrøvl, da javascript-fortolkeren jo godt ved, at den skal udføre javascript-kode i en sådan ...

-- og cursor:hand; virker kun i IE (plus vistnok nogle enkelte andre browsere !-), mens standarden foreskriver cursor:pointer; som desværre først er implementeret i IE6, så hvis du skal supportere ældre IE'er kan du sætte begge efter hinanden ...
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