Avatar billede jes_petersen Nybegynder
17. januar 2001 - 18:27 Der er 9 kommentarer og
2 løsninger

Oversæt til Netscape

Hvorfor f* virker følgende ikke i hadebrowseren:
<a href=\"#\" class=\"menulink\" onmouseover=\"showmenu(menu_4);\">Link</a>

<layer name=\"menu_4\" style=\"position:absolute;z-index:1;visibility:hidden\"> <a href=\"designpc_intro.asp\" class=\"menulink\">Introduktion</a> <img src=\"images/white_vertical_bar_2.gif\"> <a href=\"designpc_color.asp\" class=\"menulink\">Farve-lakering</a> </layer>

Funktionen showmenu() ser sådan ud:

function showmenu(ID) {
document.menu_1.visibility = \"hide\";
document.menu_2.visibility = \"hide\";
document.menu_3.visibility = \"hide\";
document.menu_4.visibility = \"hide\";
document.menu_5.visibility = \"hide\";
document.layers[ id].visibility = \"show\";
}

Hjælp!!!


Avatar billede jes_petersen Nybegynder
17. januar 2001 - 18:32 #1
Hvis I vil se et eksempel på den dårlige funktionalitet, så kig lige på http://asp.webconsult.dk/ i NS6
Avatar billede olebole Juniormester
17. januar 2001 - 18:35 #2
<ole>
Prøv med gåseøjne:
  <a href=\"#\" class=\"menulink\" onmouseover=\"showmenu(\'menu_4\');\">Link</a>
...du har også et mellemrum lige før \'id\', der skal fjernes:
  document.layers[id].visibility = \"show\";
/mvh
</bole>
Avatar billede olebole Juniormester
17. januar 2001 - 18:37 #3
Hallo...NS6 har jo en helt anden DOM! Der skal du kalde:
  document.getElementById(id).style.visibility = \"visible\";
/mvh
Avatar billede jes_petersen Nybegynder
17. januar 2001 - 18:40 #4
Men hvorfor bliver layerne ikke skjult fra begyndelsen?
Avatar billede vandhunden Nybegynder
17. januar 2001 - 20:13 #5
Lav dog en dynamisk løsning der virker i begge to:

<script language=\"javascript\">
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function show(id) {
if (ns4) document.layers[ id].visibility = \"show\"
else if (ie4) document.all[ id].style.visibility = \"visible\"
}
function hide(id) {
if (ns4) document.layers[ id].visibility = \"hide\"
else if (ie4) document.all[ id].style.visibility = \"hidden\"
}

function showmenu(ID) {
hide(\'menu_1\');
hide(\'menu_2\');
hide(\'menu_3\');
hide(\'menu_4\');
hide(\'menu_5\');
show(ID);
}
</script>

Avatar billede vandhunden Nybegynder
17. januar 2001 - 20:15 #6
Jeg er ikke sikker på at det er en god idé at kalde dem begge for ID, ved nærmere eftertanke:

<script language=\"javascript\">
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function show(id) {
if (ns4) document.layers[ id].visibility = \"show\"
else if (ie4) document.all[ id].style.visibility = \"visible\"
}
function hide(id) {
if (ns4) document.layers[ id].visibility = \"hide\"
else if (ie4) document.all[ id].style.visibility = \"hidden\"
}

function showmenu(menuID) {
hide(\'menu_1\');
hide(\'menu_2\');
hide(\'menu_3\');
hide(\'menu_4\');
hide(\'menu_5\');
show(menuID);
}
</script>

Avatar billede jes_petersen Nybegynder
18. januar 2001 - 11:51 #7
Vandhunden >> Men virker det så også i NS6???
Avatar billede vandhunden Nybegynder
18. januar 2001 - 15:45 #8
Nej der skal en tiny lille tilføjelse. Ser lige om jeg kan finde den et sted.
Avatar billede jes_petersen Nybegynder
18. januar 2001 - 17:19 #9
Det ville være great - jeg skal bruge det snarest muligt
Avatar billede olebole Juniormester
18. januar 2001 - 21:46 #10
Det der virker formodentlig ikke nogen steder. Der er i hvert fald en fejl - som jeg anførte højere oppe - derved, der er luft før \'id\' i [ id]. Det må der ikke være.
Hvorfor dette skulle være en mere dynamisk metode, end den du selv havde lavet, ved jeg ikke. Begge dele er så afgjort dynamisk HTML, så deeeeeet............... :)

<script language=\"javascript\">
ns4 = (document.layers)? true:false;
ns6 = (document.getElementById)? true:false;
ie4 = (document.all)? true:false;

function show(id) {
if (ns4) document.layers[id].visibility = \"show\";
else if (ns6) document.getElementById(id).style.visibility = \"visible\";
else if (ie4) document.all[id].style.visibility = \"visible\";
}
function hide(id) {
if (ns4) document.layers[id].visibility = \"hide\";
else if (ns6) document.getElementById(id)).style.visibility = \"hidden\";
else if (ie4) document.all[id].style.visibility = \"hidden\";
}

function showmenu(id) {
hide(\'menu_1\');
hide(\'menu_2\');
hide(\'menu_3\');
hide(\'menu_4\');
hide(\'menu_5\');
show(id);
}
</script>

/mvh
Avatar billede olebole Juniormester
18. januar 2001 - 21:50 #11
...eller en måske lidt mere \'sexy\' version af showmenu():

function showmenu(id) {
  for (i=0; i<5; i++) {
    eval(\"hide(\'menu_\"+i+\"\')\");
  }
  show(id);
}

/mvh
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