Avatar billede irsild Nybegynder
07. april 2002 - 20:40 Der er 20 kommentarer og
1 løsning

Baggrunds farve

Jeg har en tabel der indeholder andre tabeller og TDér. Meningen er at når man trykker på en td med musen, så skal baggrundsfarven ændres i hele den tabel som tilhøre den td der blev trykket på.

Er spørgsmålet forstået?
Avatar billede spyro.dk Nybegynder
07. april 2002 - 20:42 #1
ja
Avatar billede spyro.dk Nybegynder
07. april 2002 - 20:42 #2
brug onmousover
Avatar billede irsild Nybegynder
07. april 2002 - 20:46 #3
Ja, så langt er jeg kommet. Jeg har fundet hvilket elememnt der trykkes på. Så jeg tror det er noget med at sige parent til den td og så sætte bgcolor på tabellen?

function whichElement()
{
    var tname
    tname=window.event.srcElement.tagName ;
    alert("You clicked on a " + tname + " element.")
   
}
Avatar billede fangel Nybegynder
07. april 2002 - 20:46 #4
eller onMouseClick
Avatar billede hmm10 Nybegynder
07. april 2002 - 20:46 #5
2 sek, jeg sender dig et om 2 sek.
Avatar billede hmm10 Nybegynder
07. april 2002 - 20:46 #6
<html>

    <head>
        <title>din title</title>
        <script language="javascript">
       
function rowOver(){
    lmnt = window.event.srcElement;
    if (lmnt.tagName.toUpperCase() == 'TABLE')
        return;
    while (lmnt.tagName.toUpperCase() !='TR')
        lmnt = lmnt.parentElement;
    lmnt.style.background = "#D1E0C7";
}

function rowOut(){
    lmnt = window.event.srcElement;
    if (lmnt.tagName.toUpperCase() == 'TABLE')
        return;
    while (lmnt.tagName.toUpperCase() !='TR')
        lmnt = lmnt.parentElement;
    lmnt.style.background ="#E6F5E3";
}

function rowOverTD(){
    lmnt = window.event.srcElement;
    if (lmnt.tagName.toUpperCase() == 'TABLE')
        return;
    while (lmnt.tagName.toUpperCase() !='TD')
        lmnt = lmnt.parentElement;
    lmnt.style.background = "#D1E0C7";
}

function rowOutTD(){
    lmnt = window.event.srcElement;
    if (lmnt.tagName.toUpperCase() == 'TABLE')
        return;
    while (lmnt.tagName.toUpperCase() !='TD')
        lmnt = lmnt.parentElement;
    lmnt.style.background ="#E6F5E3";
}

</script>
    </head>

    <body marginwidth="0" topmargin="0" link="#13205f" alink="#13205f" vlink="#13205f" text="#13205f">
        <center>
            <table width="350" onmouseover="rowOver();" onmouseout="rowOut();">
                <tr bgcolor="#E6F5E3">
                    <td align="left" width="137"><a href="side2.html" onclick="java script:vindue(1);" style="font-style: none; text-decoration: none;"><font  face="arial" size="1">nr. 1</font></a></td>
                    <td align="center" width="42"></td>
                    <td align="center" width="35"></td>
                    <td align="center" width="56"></td>
                    <td align="center" width="68"></td>
                </tr>
                <tr bgcolor="#E6F5E3">
                    <td align="left" width="137"><a href="side1.html" onclick="java script:vindue(2);" style="font-style: none; text-decoration: none;"><font  face="arial" size="1">nr 2.</font></a></td>
                    <td align="center" width="42"></td>
                    <td align="center" width="35"></td>
                    <td align="center" width="56"></td>
                    <td align="center" width="68"></td>
                </tr>
            </table>
        </center>
    </body>

</html>
Avatar billede hmm10 Nybegynder
07. april 2002 - 20:47 #7
- jeg har leget lidt :) der er to tabeller plus lidt mere det kan du bare lave om på. :)
Avatar billede boris Mester
07. april 2002 - 20:55 #8
Endnu en variant. Måske lidt mere enkel? Jeg har forsøgt at tage spørgsmålet helt bogstaveligt:

<title>titlen</title>
    <script>
    function farve(nummer)
    {
    document.getElementById(nummer).style.background="blue";
    }   
   
    </script>
</head>

<body >
<table id="nr">
<tr>
<td onclick="farve('nr')">
TD nummer 1
</td>
<td onclick="farve('nr')">
TD nummer 2
</td>
</tr>

</table>
Avatar billede irsild Nybegynder
07. april 2002 - 21:03 #9
Nu har jeg dette og det virker på onclick. Når man clicker på en td, så farves hele tabellen. Hvordan får jeg det sådan, at når jeg trykker på en ny td, så er det kun den nye tabel der er trykket på der er farvet?

function whichElement()
{
    var tname
    tname=window.event.srcElement;
        tname.parentElement.style.background ="#E6F5E3";
   
}
Avatar billede hmm10 Nybegynder
07. april 2002 - 21:11 #10
mig? - jeg forstå ikke...
Avatar billede hmm10 Nybegynder
07. april 2002 - 21:12 #11
du laver en ny:
<table>
</table>
jeg forstå ikk helt...
Avatar billede boris Mester
07. april 2002 - 21:24 #12
Du kan f.eks. gøre sådan:

<script>
    var udvalg="";
    function farve(nummer)
    {
    if (udvalg!="")
document.getElementById(udvalg).style.background="white";
    udvalg=nummer
    document.getElementById(nummer).style.background="blue";
    }   
   
    </script>
</head>

<body >
<table id="nr">
<tr>
<td onclick="farve('nr')">
TD nummer 1
</td>
<td onclick="farve('nr')">
TD nummer 2
</td>
</tr>

</table>
<table id="andetnr">
<tr>
<td onclick="farve('andetnr')">
TD nummer 1
</td>
<td onclick="farve('andetnr')">
TD nummer 2
</td>
</tr>

</table>
Avatar billede hmm10 Nybegynder
07. april 2002 - 21:34 #13
hmm... den er lidt kortere, og mere forståligere :)
Avatar billede irsild Nybegynder
07. april 2002 - 21:35 #14
Boris >> Det skal laves uden at TDér får en id eller en onclick-funktion. Dvs. at alt funktionalitet skal lige i script.
Avatar billede boris Mester
07. april 2002 - 21:44 #15
Jeg har svaret på spørgsmålet:
"Jeg har en tabel der indeholder andre tabeller og TDér. Meningen er at når man trykker på en td med musen, så skal baggrundsfarven ændres i hele den tabel som tilhøre den td der blev trykket på.

Er spørgsmålet forstået? "
Svaret virker.
Når man klikker på en td, ændres baggrundsfarven i tabellen og når man trykker på en td i en anden tabel, skfiter baggrundsfarven over til den nye tabel....
Avatar billede irsild Nybegynder
07. april 2002 - 21:46 #16
Sådan ser min tabel ud. Når jeg trykker på en TD farves hele tabellen for den TD.

Det der så skal sker er:
Når jeg trykker på en TD i en anden tabel, så farves den nye tabel og de andre tabeller har så ingen farve. Hjalp det?

<table cellspacing="5" cellpadding="5" border="1">
<tr>
  <td>
    <table cellspacing="5" cellpadding="5" border="1">
        <td width="50">&nbsp;</td>
        <td width="50">&nbsp;b</td>
        <td width="50">&nbsp;c</td>
    </table>
  </td>
</tr>
<tr>
    <td>
    <table cellspacing="5" cellpadding="5" border="1">
        <td width="50">&nbsp;</td>
        <td width="50">&nbsp;</td>
        <td width="50">&nbsp;</td>
    </table>
  </td>
</tr>
<tr>
    <td>
    <table cellspacing="5" cellpadding="5" border="1">
        <td width="50">&nbsp;</td>
        <td width="50">&nbsp;</td>
        <td width="50">&nbsp;</td>
    </table>
  </td>
</tr>
</table>
Avatar billede boris Mester
07. april 2002 - 21:50 #17
Jo, men du skal jo have en eller anden event, som styrer det.
Også for den tabel, som ikke skal være farvet længere.
Jeg har gemt navnet på den tabel, som skal "farves tilbage igen", når den nye tabel skal farves.
Avatar billede irsild Nybegynder
07. april 2002 - 21:57 #18
Boris >>

Den event får jeg fra <BODY onclick="whichElement()">

function whichElement()
{
    var tname
    tname=window.event.srcElement;   
    tname.parentElement.style.background ="#E6F5E3";
}
Avatar billede boris Mester
07. april 2002 - 22:27 #19
Det her virker
<script>
    var sidste
    function whichElement()
{
    if (sidste != null)
    sidste.parentElement.style.background ="white";
    var tname
    tname=window.event.srcElement;   
    tname.parentElement.style.background ="#E6F5E3";
    sidste=tname;
}
   
    </script>
Avatar billede boris Mester
07. april 2002 - 22:28 #20
Men der er lige det problem, at funktionen også virker på andet end tabeller. Hvis du f.eks. klikker på en <hr> linie, bliver hele siden farvet grøn!
Avatar billede irsild Nybegynder
08. april 2002 - 19:49 #21
Tak for hjælpen.
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