Avatar billede dd_ns Nybegynder
29. oktober 2002 - 16:59 Der er 31 kommentarer og
1 løsning

mouseover...

Jeg har.:



<script language="JavaScript">
  function co(element,mode) {
    if (mode=="in") {
      cursortype = 'hand'
      colorval = '#B7C6D6'
    } else if (mode=="out") {
      cursortype = ''
      colorval = '#e9e9e9'
    }
  element.style.background=colorval;
  element.style.cursor=cursortype;
}
</script>

<table cellpadding="0" cellspacing="1" bgcolor="Gray" width="125">
<tr>
  <td bgcolor="#003366"><b>Menu</b></td>
</tr>
<tr>
  <td bgcolor="#e9e9e9" onmouseover="co(this,'in');" onmouseout="co(this,'out');">
    <a href="artikler.htm" style="width: 100%;">Artikler</a></td>
</tr>
<tr>
  <td bgcolor="#e9e9e9" onmouseover="co(this,'in');" onmouseout="co(this,'out');">
    <a href="debat.htm" style="width: 100%;">Debat</a></td>
</tr>
<tr>
  <td bgcolor="#e9e9e9" onmouseover="co(this,'in');" onmouseout="co(this,'out');">
    <a href="mailto:webmaster@activeserverpages.dk" style="width: 100%;">Email</a></td>
</tr>
</table>











Det skal så være sådan at når man trykker på en skal den beholde farven... hvis man trykker på en anden en skal de begge beholde farven, osv... Man skal kunne fjerne farven ved at trykke på en der allerede har en farve...

Hvordan laver jeg det?
Avatar billede cdc Novice
29. oktober 2002 - 17:05 #1
hvis det kun er bg farven, vil jeg anbefale dig at bruge css i stedet.
et eksp.: http://hjem.get2net.dk/arntsen/eksperten/css/tabel_bg_menu.htm
Avatar billede dd_ns Nybegynder
29. oktober 2002 - 17:09 #2
Cool, kan du lave det så der virker som jeg siger? med at den skal beholde farver på de andre når man trykker på en ny?
Avatar billede cdc Novice
29. oktober 2002 - 17:17 #3
den her kan kun bibeholde farven når den er activ, og blir hvid igen når der bliver klikket på et andet menupungt

/cdc
Avatar billede dd_ns Nybegynder
29. oktober 2002 - 17:18 #4
Ja, fedt, men det er jo ikke det jeg skal bruge...
Avatar billede Slettet bruger
29. oktober 2002 - 18:13 #5
<td bgcolor="#e9e9e9" onmouseover="if (!v1) co(this,'in');" onmouseout="if (!v1) co(this,'out');" onclick="v1 = !v1;">

v1 skal så ændres til v2 for den næste td osv.
Avatar billede dd_ns Nybegynder
30. oktober 2002 - 09:15 #6
DEt virker ikke det der.... Eller er det mig?
Avatar billede Slettet bruger
30. oktober 2002 - 14:17 #7
Dette skal lige stå i head (det glemte jeg):

<script>
v1 = false;
v2 = false;
//osv.
</script>

Hvis det ikke virker, må du meget gerne smide et link!
Avatar billede dd_ns Nybegynder
31. oktober 2002 - 09:19 #8
Nu virker det... Men hvad så hvis det er alle td i en række der skal have farve ved tryk på en td? forstår du... Noget alla:

<tr>
<td>1</td>
<td>1</td>
</tr>


<tr>
<td>2</td>
<td>2</td>
</tr>

og så skal effekten være på alle td'er i hele den samme tr?
Avatar billede dd_ns Nybegynder
31. oktober 2002 - 15:25 #9
comon, du må da have en løsning...
Avatar billede Slettet bruger
31. oktober 2002 - 16:49 #10
Du bliver lige nødt til at give mig mindst en dag! Jeg er jo ikke online hele tiden! :)

Er der et fast antal td'er i hver række?
Avatar billede dd_ns Nybegynder
31. oktober 2002 - 16:51 #11
Nej, der er ikke et fast antal, men det er muligt at tælle dem... forstår du?
Avatar billede Slettet bruger
31. oktober 2002 - 17:05 #12
Jeg ved ikke, om man kan "snyde" sig til det på den her måde:

<tr name="trNavn">
<td bgcolor="#e9e9e9" onmouseover="if (!v1) co(this,'in');" onmouseout="if (!v1) co(this,'out');" onclick="v1 = !v1; document.trNavn.bgcolor = '#B7C6D6';">
</tr>
Avatar billede Slettet bruger
31. oktober 2002 - 17:06 #13
Og ved hver td i en tr:

<tr name="trNavn">
<td bgcolor="#e9e9e9" onmouseover="if (!v1) co(this,'in');" onmouseout="if (!v1) co(this,'out');" onclick="v1 = !v1; document.trNavn.bgcolor = '#B7C6D6';">Bla</td>
<td bgcolor="#e9e9e9" onmouseover="if (!v1) co(this,'in');" onmouseout="if (!v1) co(this,'out');" onclick="v1 = !v1; document.trNavn.bgcolor = '#B7C6D6';">Bla2</td>
<td bgcolor="#e9e9e9" onmouseover="if (!v1) co(this,'in');" onmouseout="if (!v1) co(this,'out');" onclick="v1 = !v1; document.trNavn.bgcolor = '#B7C6D6';">Bla3</td>
</tr>

Til gengæld skal v1 skiftes ud med v2 for næste tr osv.
Avatar billede dd_ns Nybegynder
01. november 2002 - 09:09 #14
Det der fungere ikke...
Avatar billede Slettet bruger
01. november 2002 - 15:31 #15
Så prøv:

<script>
v = new Array();
v[0] = false;
v[1] = false;
v[2] = false;
//osv.

function skiftFarve(id, antal, nr) {
v[nr] = !v[nr];
for (i = 0; i < antal.length; i++)
document.getElementById(id + i).style.backgroundColor = (v[nr]) ? "#B7C6D6" : "#e9e9e9";
}
</script>

For hver td:

<tr>
<td bgcolor="#e9e9e9" onmouseover="if (!v[0]) co(this,'in');" onmouseout="if (!v[0]) co(this,'out');" onclick="skiftFarve('abe', 3, 0);" id="abe0">Bla</td>
<td bgcolor="#e9e9e9" onmouseover="if (!v[0]) co(this,'in');" onmouseout="if (!v[0]) co(this,'out');" onclick="skiftFarve('abe', 3, 0);" id="abe1">Bla2</td>
<td bgcolor="#e9e9e9" onmouseover="if (!v[0]) co(this,'in');" onmouseout="if (!v[0]) co(this,'out');" onclick="skiftFarve('abe', 3, 0);" id="abe2">Bla3</td>
</tr>
<tr>
<td bgcolor="#e9e9e9" onmouseover="if (!v[1]) co(this,'in');" onmouseout="if (!v[1]) co(this,'out');" onclick="skiftFarve('banan', 2, 1);" id="banan0">Bla</td>
<td bgcolor="#e9e9e9" onmouseover="if (!v[1]) co(this,'in');" onmouseout="if (!v[1]) co(this,'out');" onclick="skiftFarve('banan', 2, 1);" id="banan1">Bla2</td>
</tr>

skiftFarve kaldes med skiftFarve(id_for_cellerne, antal_celler_i_rækken, nummer_på_rækken)
Hver tr's td'er skal derfor have hver deres id. Den første celle skal hedde "something0", den anden "something1" osv. "something" skiftes ud med et andet navn (kun bestående af bogstaver) for hver række.
nummer_på_rækken starter med nul.
Avatar billede dd_ns Nybegynder
01. november 2002 - 15:35 #16
Det virker sku ikke...
Avatar billede Slettet bruger
01. november 2002 - 15:38 #17
Kan du ikke lige smide et link så? Jeg har svært ved at koncentere mig, når jeg skal gætte hele tiden. Det ville være nemmere, hvis jeg kunne visualisere det.
Avatar billede dd_ns Nybegynder
01. november 2002 - 15:40 #18
Jeg kan ikke give dig et link lige nu... Men den virker entenlig godt, den skal bare farve alle td'er
Avatar billede Slettet bruger
01. november 2002 - 15:41 #19
Det kan jeg heller ikke forstå, hvorfor den ikke gør.

Kan du ikke bare uploade din test-side på friserverplads eller sådan noget?
Avatar billede dd_ns Nybegynder
01. november 2002 - 15:42 #20
Det er faktisk det du har lavet jeg tester... hvis du forstår...
Avatar billede Slettet bruger
01. november 2002 - 15:44 #21
Ups, slet ".length" fra denne linje:

for (i = 0; i < antal.length; i++)

Nu virker det i hvert fald!
Avatar billede dd_ns Nybegynder
01. november 2002 - 15:47 #22
Kan du lave det sådan at det er alle td'er der kan aktivere linien, forstår du?
Avatar billede Slettet bruger
01. november 2002 - 15:52 #23
Det er da også (i hvert fald hos mig).
Avatar billede dd_ns Nybegynder
01. november 2002 - 15:55 #24
Ja, men hvis man aktivere på den første skal man også slå den fra på den første.... Man skal kunne slå fra og til på alle...
Avatar billede Slettet bruger
01. november 2002 - 16:02 #25
Altså hvis man aktiverer på den første, kan man ikke deaktivere på den anden?
Avatar billede dd_ns Nybegynder
01. november 2002 - 16:03 #26
Jo det skal netop være sådan!... Man skal kunne tænde og slukke på alle td'er i den gældende tr
Avatar billede Slettet bruger
01. november 2002 - 16:10 #27
Så forstår jeg det ikke. I IE6 og NS7 fungerer det helt præcist, som du siger, det skal.
Avatar billede dd_ns Nybegynder
01. november 2002 - 16:10 #28
Nej... Hvis jeg tænder den på td nummer 2 så skal jeg også slukke den på td nummer 2
Avatar billede dd_ns Nybegynder
01. november 2002 - 16:11 #29
Det er da mig der fjoller.... beklager... Den gør jo lige som jeg vil have... :) undskyld. :)

Sidste ting... Kan du lave pilen blive en hånd heletiden... hvis du frostår...
Avatar billede Slettet bruger
01. november 2002 - 16:15 #30
OK, så havde jeg misforstået dig.

<script>
v = new Array();
v[0] = false;
v[1] = false;
v[2] = false;
//osv.

t = new Array();
t[0] = 0;
t[1] = 0;
t[2] = 0;
//osv.

function skiftFarve(id, antal, nr) {
v[nr] = !v[nr];
for (i = 0; i < antal.length; i++)
document.getElementById(id + i).style.backgroundColor = (v[nr]) ? "#B7C6D6" : "#e9e9e9";
}
</script>

For hver td:

<tr>
<td bgcolor="#e9e9e9" onmouseover="if (!v[0]) co(this,'in');" onmouseout="if (!v[0]) co(this,'out');" onclick="if (!(v[0] && t[0] == this)) { skiftFarve('abe', 3, 0); t[0] = this; }" id="abe0">Bla</td>
<td bgcolor="#e9e9e9" onmouseover="if (!v[0]) co(this,'in');" onmouseout="if (!v[0]) co(this,'out');" onclick="if (!(v[0] && t[0] == this)) { skiftFarve('abe', 3, 0); t[0] = this; }" id="abe1">Bla2</td>
<td bgcolor="#e9e9e9" onmouseover="if (!v[0]) co(this,'in');" onmouseout="if (!v[0]) co(this,'out');" onclick="if (!(v[0] && t[0] == this)) { skiftFarve('abe', 3, 0); t[0] = this; }" id="abe2">Bl3</td>
</tr>
Avatar billede Slettet bruger
01. november 2002 - 16:16 #31
Du tilføjer bare dette ved hver td:

style="cursor: pointer; cursor: hand;"
Avatar billede dd_ns Nybegynder
01. november 2002 - 16:16 #32
takker.
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