Avatar billede mamu Nybegynder
04. juli 2004 - 00:19 Der er 9 kommentarer og
1 løsning

Menubar hvor baggrundsfarven ændres

Hej eksperter

Jeg har lavet en vandret menubar (i et table), og vil gerne have at baggrundsfarven inde i <td> skifter når der klikkes på et link. I linket haves:

onclick="menu()"

og funktionen menu() ser i øjeblikket således ud:

function menu(){
        document.bgColor="red"
    }
Jeg formoder at der skal sættes en eller anden form for name eller id der hvor ændringen skal foretages (altså i <td>) og den så skal kaldes i menu(), kan bare ikke få det til at funge...


(Jeg ved godt at det jeg spørger om umiddelbart kan laves let med css, men det er jeg ikke interesseret i fordi det skal kunne lidt mere end angivet ovenfor)
Avatar billede roenving Novice
04. juli 2004 - 00:22 #1
onclick="menu(this)"

function menu(elm){
        elm.style.backgroundColor="red";
    }
Avatar billede gil-galad Nybegynder
04. juli 2004 - 00:24 #2
<a href="#" onclick="document.getElementById('skiftfarve').style.backgroundColor = 'red'">Klik her!</a>
<a href="#" onclick="document.getElementById('skiftfarve').style.backgroundColor = 'green'">Klik her!</a>
<a href="#" onclick="document.getElementById('skiftfarve').style.backgroundColor = 'blue'">Klik her!</a>
<a href="#" onclick="document.getElementById('skiftfarve').style.backgroundColor = 'yellow'">Klik her!</a>
<br><br><br>
<table width="100px" border="2px">
  <tr>
    <td id="skiftfarve"><br><br><br></td>
  </tr>
</table>
Avatar billede gil-galad Nybegynder
04. juli 2004 - 00:24 #3
hmmm.. var vist lidt langsom.....
Avatar billede mamu Nybegynder
04. juli 2004 - 00:31 #4
roenving skrev:

onclick="menu(this)"

function menu(elm){
        elm.style.backgroundColor="red";
    }

Det virker fint, men ændrer kun baggrundsfarven omkring selve teksten i linket og ikke hele baggrunden indenfor <td>
Avatar billede roenving Novice
04. juli 2004 - 00:34 #5
Det er rigtigt, jeg havde overset, at linket ikke var i selve tabellen !-)
Avatar billede roenving Novice
04. juli 2004 - 00:35 #6
Arh, du har faktisk linket i cellen:

function menu(elm){
        elm.parentNode.style.backgroundColor="red";
    }

-- hvis du vel og mærke ikke har nogen font-ting eller andre tåbeligheder rundt om linket !-)
Avatar billede mamu Nybegynder
04. juli 2004 - 00:44 #7
Yes, det var lige netop sådan det skulle være - lige et lille tillægsspørgsmål hvis det er ok?

Når jeg gerne vil have baggrundsfarven til at skifte tilbage når en af de andre links trykkes ned, hvad gør jeg så, nu kan jeg jo ikke bare henvise til this?
Avatar billede mamu Nybegynder
04. juli 2004 - 01:04 #8
Ok jeg fandt selv ud af det...

Tak for hjælpen, pop lige et svar så du kan få dine points.
Avatar billede roenving Novice
04. juli 2004 - 01:08 #9
function menu(elm){
  td = elm.parentNode;
  tdAll = td.parentNode.childNodes;
  for(i=0;tdAll.length>i;i++){
    tdAll[i].style.backgroundColor = (tdAll[i]==td)?'red':'green';
  }
}

-- og velbekomme '-)
Avatar billede roenving Novice
04. juli 2004 - 01:24 #10
Tak for point ;~}
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