Avatar billede missing Nybegynder
07. maj 2000 - 18:07 Der er 5 kommentarer og
1 løsning

id, style, og background

Jeg har nedenstående script, og hvis du gemmer koden og ser det i din browser, så prøv at følge dette korte eksempel;
  tryk på 'forside'
  tryk på 'hvad kan vi'
  kør henover 'forside' igen. onmouseover farven mangler så !!!
fejlen ligger i linje 13 ved id.onmouseover og frem (som er rent improviseret kode, fra min side). Hvad hedder koden rigtigt der ???


ekstra point kan også fås ved at løse den for-løkke som jeg har sat som kommentar (jeg er ikke bekendt med løkker og arrays, så jeg kunne ikke selv).


<html><head><style>#txt{font-face:verdana;font-family:verdana;font-size:9px;font-weight:bold;color:white}</style></head><body bgcolor=gray topmargin=0 leftmargin=0>
<table cellspacing=0 cellpadding=0 height=18 width=100% id=txt><tr>

<script language=javascript>
function hvid(nr,id){
/*for (i=0; i < 6 ;i++){var bob = new Array('nr1','nr2','nr3','nr4','nr5','nr6');*/
nr1.style.background='';nr1.style.color='white';
nr2.style.background='';nr2.style.color='white';
nr3.style.background='';nr3.style.color='white';
nr4.style.background='';nr4.style.color='white';
nr5.style.background='';nr5.style.color='white';
nr6.style.background='';nr6.style.color='white';
id.style.background='white';id.onmouseover='';id.onmouseout='';id.style.color='black'}</script>

<td width=16% onclick=hvid(1,nr1) id=nr1 style=cursor:crosshair onmouseover="style.background='#cdcdcd';style.color='black'" onmouseout="style.background='';style.color='white'"><center>Forside</td>
<td width=16% onclick=hvid(2,nr2) id=nr2 style=cursor:crosshair onmouseover="style.background='#cdcdcd';style.color='black'" onmouseout="style.background='';style.color='white'"><center>Hvad kan vi ?</td>
<td width=16% onclick=hvid(3,nr3) id=nr3 style=cursor:crosshair onmouseover="style.background='#cdcdcd';style.color='black'" onmouseout="style.background='';style.color='white'"><center>Priser</td>
<td width=16% onclick=hvid(4,nr4) id=nr4 style=cursor:crosshair onmouseover="style.background='#cdcdcd';style.color='black'" onmouseout="style.background='';style.color='white'"><center>Muligheder</td>
<td width=16% onclick=hvid(5,nr5) id=nr5 style=cursor:crosshair onmouseover="style.background='#cdcdcd';style.color='black'" onmouseout="style.background='';style.color='white'"><center>Nyheder</td>
<td width=16% onclick=hvid(6,nr6) id=nr6 style=cursor:crosshair onmouseover="style.background='#cdcdcd';style.color='black'" onmouseout="style.background='';style.color='white'"><center>Om TBW</td>

</tr></table></body></html>
Avatar billede tigerdyr Nybegynder
07. maj 2000 - 22:05 #1
Problemet er generelt, hvis du har trykket på et link, skifter farverne ikke på onMouseOver igen bagefter :o((
Men hvor løsningen skal findes, kan jeg desværre ikke lige gennemskue!
Avatar billede olebole Juniormester
08. maj 2000 - 01:40 #2
<ole>
Her er den, så den virker. Jeg har 'smukseret' lidt på din kode-opstilling, da den var ret uoverskuelig!

<html>
<head>
<script language=javascript>
var checkLag = new Array('0','0','0','0','0','0');
function hvid(nr,id){
    for (i=1; i < checkLag.length ;i++){
        checkLag[i-1] = 0;
        which = eval('nr'+i);
        which.style.background='';
        which.style.color='white';
        id.style.background='white';
        id.style.color='black';
    }
    checkLag[nr] = 1;
}
function myMouseOver(nr) {
    if (checkLag[nr]!=1) {
        what = eval('nr'+nr);
        what.style.background='#cdcdcd';
        what.style.color='black'
    }
}
function myMouseOut(nr) {
    if (checkLag[nr]!=1) {
        what = eval('nr'+nr);
        what.style.background='';
        what.style.color='white'
    }
}
</script>
<style>
#txt{font-face:verdana;font-family:verdana;font-size:9px;font-weight:bold;color:white}
</style>
</head>
<body bgcolor=gray topmargin=0 leftmargin=0>

<table cellspacing=0 cellpadding=0 height=18 width=100% id=txt>
    <tr>
        <td width=16% onclick=hvid('1',nr1) id=nr1 style=cursor:crosshair onmouseover="myMouseOver('1');" onmouseout="myMouseOut('1')"><center>Forside</td>
        <td width=16% onclick=hvid('2',nr2) id=nr2 style=cursor:crosshair onmouseover="myMouseOver('2');" onmouseout="myMouseOut('2')"><center>Hvad kan vi ?</td>
        <td width=16% onclick=hvid('3',nr3) id=nr3 style=cursor:crosshair onmouseover="myMouseOver('3');" onmouseout="myMouseOut('3')"><center>Priser</td>
        <td width=16% onclick=hvid('4',nr4) id=nr4 style=cursor:crosshair onmouseover="myMouseOver('4');" onmouseout="myMouseOut('4')"><center>Muligheder</td>
        <td width=16% onclick=hvid('5',nr5) id=nr5 style=cursor:crosshair onmouseover="myMouseOver('5');" onmouseout="myMouseOut('5')"><center>Nyheder</td>
        <td width=16% onclick=hvid('6',nr6) id=nr6 style=cursor:crosshair onmouseover="myMouseOver('6');" onmouseout="myMouseOut('6')"><center>Om TBW</td>
    </tr>
</table>

</body>
</html>

Dog synes jeg det er mildt sagt noget skod, at den kun fungerer i IE5. Det burde være lavet i lag i stedet. Så ville det kunne gøres X-browser fra version 4 og op. Men nu var det altså det her, der var spørgsmålet.
/Vh
</bole>
Avatar billede olebole Juniormester
08. maj 2000 - 01:45 #3
SHIT...!!!...Den gamle Eksperten-fejl med de enkelte gåseøjne :-((
Eksperten vil ikke altid tage imod to - på hinanden fælgende - enkelte gåseøjne, men laver kun det ene. Check det selv ud - og ret.
Avatar billede olebole Juniormester
08. maj 2000 - 01:46 #4
Nåhhh ja! Man kan heller ikke skrive 'følgende' på Eksperten...Hehe! ;-))
Avatar billede missing Nybegynder
09. maj 2000 - 21:40 #5
lækkert ole, det var jo ikke den samme javascript kode som jeg var begyndt på, men den virker, undtagen nummer 6 !!!

...og nu når jeg har sat dig til at arbejde, kan du ikke også lige sætte nr1 til at være klikket fra starten af, men helst ikke fra starten af, for hvis man nu er på siden hvor hvor nr5 linker til, og refresher....
jeg tror ikke at det er muligt, desværre, så du må gerne få den til at være hvid ved onload alligevel.....
Avatar billede olebole Juniormester
09. maj 2000 - 22:34 #6
Lav lortet om ;-)

<html>
<head>
<script language=javascript>
var checkLag = new Array('0','0','0','0','0','0');
function hvid(nr,id){
    for (i=0; i<checkLag.length ;i++){
        checkLag[i] = 0;
        which = eval('nr'+i);
        which.style.background='';
        which.style.color='white';
        id.style.background='white';
        id.style.color='black';
    }
    checkLag[nr] = 1;
}
function myMouseOver(nr) {
    if (checkLag[nr]!=1) {
        what = eval('nr'+nr);
        what.style.background='#cdcdcd';
        what.style.color='black';
    }
}
function myMouseOut(nr) {
    if (checkLag[nr]!=1) {
        what = eval('nr'+nr);
        what.style.background='';
        what.style.color='white';
    }
}
</script>
<style>
#txt{font-face:verdana;font-family:verdana;font-size:9px;font-weight:bold;color:white}
</style>
</head>
<body bgcolor=gray topmargin=0 leftmargin=0>
<table cellspacing=0 cellpadding=0 height=18 width=100% id=txt>
    <tr>
        <td width=16% onclick=hvid('0',nr0) id=nr0 style=cursor:crosshair onmouseover="myMouseOver('0');" onmouseout="myMouseOut('0')"><center>Forside</td>
        <td width=16% onclick=hvid('1',nr1) id=nr1 style=cursor:crosshair onmouseover="myMouseOver('1');" onmouseout="myMouseOut('1')"><center>Hvad kan vi ?</td>
        <td width=16% onclick=hvid('2',nr2) id=nr2 style=cursor:crosshair onmouseover="myMouseOver('2');" onmouseout="myMouseOut('2')"><center>Priser</td>
        <td width=16% onclick=hvid('3',nr3) id=nr3 style=cursor:crosshair onmouseover="myMouseOver('3');" onmouseout="myMouseOut('3')"><center>Muligheder</td>
        <td width=16% onclick=hvid('4',nr4) id=nr4 style=cursor:crosshair onmouseover="myMouseOver('4');" onmouseout="myMouseOut('4')"><center>Nyheder</td>
        <td width=16% onclick=hvid('5',nr5) id=nr5 style=cursor:crosshair onmouseover="myMouseOver('5');" onmouseout="myMouseOut('5')"><center>Om TBW</td>
    </tr>
</table>
</body>
</html>

...sådan...!!!

Din sidste kommentar har en 'klumpet' syntaks...eller hvad synes du selv...LOL! Vi prøver alligevel:
Læg i body-tag'et på hver side en 'onload' med det kald, du ellers bruger på det pågældende menu-punkts 'onclick'. På forsiden bliver det altså:
    <body onload=hvid('0',nr0);>
På 'Hvad kan vi' siden bliver det:
    <body onload=hvid('1',nr1);>
...så virker det også, hvis du bruger browserens 'back' og 'forward' knapper.

Mon ikke den er der nu?
/Vh
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