Avatar billede lund_dk Praktikant
13. oktober 2004 - 13:18 Der er 11 kommentarer og
1 løsning

Menu script

Hej!
Jeg har lavet mig en lille kode til min menu,som skal vise og skjule objekter.
Problemet er bare når jeg indsætter en <span> inde i en tabel virker det bare ikke, men gør det hvis den placeres udenfor en tabel. Nogen som kan hjælpe hvordan jeg løser dette ?
Avatar billede lund_dk Praktikant
13. oktober 2004 - 13:18 #1
<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Start</title>

<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript" src="tree.js"></script>
<script language="javascript">
<!--
var Open = ""
var Closed = ""

function preload(){
if(document.images){
    Open = new Image(16,13)   
    Closed = new Image(16,13)
    Open.src = "img/folderopen.gif"
    Closed.src = "img/folder.gif"
}}


function showhide(what,what2){
if (what.style.display=='none'){
what.style.display='';
what2.src=Open.src
}
else{
what.style.display='none'
what2.src=Closed.src
}
}
-->
</script>
</head>

<body bgcolor="#D5D6D5" onload="preload()">
<div class="ForsideTabel">

<div class="menu">


<table border="0" cellpadding="0" cellspacing="0" id="table1">
    <tr>
        <td><img border="0" src="img/base.gif" width="19" height="18"></td>
        <td colspan="3"><b>Navigation</b></td>
    </tr>
    <span id="menu1" onClick="showhide(menu1outline,menu1sign)" style="cursor:hand;">
    <tr>
        <td><img border="0" src="img/join.gif" width="18" height="18"></td>
        <td><img id="menu1sign" src="img/folder.gif" valign="bottom"></td>
        <td colspan="2"><b>Menu</b></td>
    </tr>
    </span>
    <span id="menu1outline" style="display:'none'">
    <tr>
        <td><img border="0" src="img/line.gif" width="18" height="18"></td>
        <td><img border="0" src="img/join.gif" width="18" height="18"></td>
        <td><img border="0" src="img/page.gif" width="18" height="18"></td>
        <td>Text</td>
    </tr>
    </span>
    <tr>
        <td><img border="0" src="img/line.gif" width="18" height="18"></td>
        <td><img border="0" src="img/joinbottom.gif" width="18" height="18"></td>
        <td><img border="0" src="img/page.gif" width="18" height="18"></td>
        <td>Text</td>
    </tr>
</table>

</div>
</div>
</body>

</html>
Avatar billede roenving Novice
13. oktober 2004 - 13:31 #2
Laver du det til intranet, siden du skriver M$IE-only kode ?-)
Avatar billede roenving Novice
13. oktober 2004 - 13:37 #3
Først og fremmest laver du en elementær fejl med ulovlig nesting, for du kan ikke med andre elementer omkranse et tr-element, et sådant må _kun_ omkranses af et table(/tbody)-element, og må ligeledes alene indeholde td-elementer, men da det jo alligevel er tr-elementet, du skal vise/skjule kan du ligesågodt tage direkte fat i det:

<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Start</title>

<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript" src="tree.js"></script>
<script language="javascript">
<!--
var Open = ""
var Closed = ""

function preload(){
if(document.images){
    Open = new Image(16,13)   
    Closed = new Image(16,13)
    Open.src = "img/folderopen.gif"
    Closed.src = "img/folder.gif"
}}


function showhide(what,what2){
  what = document.getElementById(what);
  what2 = document.getElementById(what2);
  if (what.style.display=='none'){
    what.style.display='';
    what2.src=Open.src
  }else{
    what.style.display='none'
    what2.src=Closed.src
  }
}
-->
</script>
</head>

<body bgcolor="#D5D6D5" onload="preload()">
<div class="ForsideTabel">

<div class="menu">


<table border="0" cellpadding="0" cellspacing="0" id="table1">
    <tr>
        <td><img border="0" src="img/base.gif" width="19" height="18"></td>
        <td colspan="3"><b>Navigation</b></td>
    </tr>
    <tr id="menu1" onClick="showhide('menu1outline','menu1sign')" style="cursor:pointer;">
        <td><img border="0" src="img/join.gif" width="18" height="18"></td>
        <td><img id="menu1sign" src="img/folder.gif" valign="bottom"></td>
        <td colspan="2"><b>Menu</b></td>
    </tr>
    <tr id="menu1outline" style="display:none;">
        <td><img border="0" src="img/line.gif" width="18" height="18"></td>
        <td><img border="0" src="img/join.gif" width="18" height="18"></td>
        <td><img border="0" src="img/page.gif" width="18" height="18"></td>
        <td>Text</td>
    </tr>
    <tr>
        <td><img border="0" src="img/line.gif" width="18" height="18"></td>
        <td><img border="0" src="img/joinbottom.gif" width="18" height="18"></td>
        <td><img border="0" src="img/page.gif" width="18" height="18"></td>
        <td>Text</td>
    </tr>
</table>

</div>
</div>
</body>

</html>

-- desuden rettede jeg koden, så den ikke alene virker i ie, men i samtlige nutidige browsere ...
Avatar billede lund_dk Praktikant
13. oktober 2004 - 13:53 #4
det giver mig en javscript fejl pålinien
<tr id="menu1" onClick="showhide('menu1outline','menu1sign')" style="cursor:pointer;">
Avatar billede lund_dk Praktikant
13. oktober 2004 - 13:58 #5
ikke længere :)

men et andet problem så, jeg får brug for at åbne mere end en <tr><td></td></tr>
Avatar billede roenving Novice
13. oktober 2004 - 13:58 #6
Har du ikke bare kopieret det hele ?-)
Avatar billede roenving Novice
13. oktober 2004 - 14:00 #7
Ja !-)

-- du kan udbygge ovenstående i det uendelige, ved f.eks. at indsætte:

    <tr id="menu2" onClick="showhide('menu2outline','menu2sign')" style="cursor:pointer;">
        <td><img border="0" src="img/join.gif" width="18" height="18"></td>
        <td><img id="menu2sign" src="img/folder.gif" valign="bottom"></td>
        <td colspan="2"><b>Menu</b></td>
    </tr>
    <tr id="menu2outline" style="display:none;">
        <td><img border="0" src="img/line.gif" width="18" height="18"></td>
        <td><img border="0" src="img/join.gif" width="18" height="18"></td>
        <td><img border="0" src="img/page.gif" width="18" height="18"></td>
        <td>Text</td>
    </tr>
Avatar billede lund_dk Praktikant
13. oktober 2004 - 14:12 #8
Jojo den er jeg med på..

Men hvis vi tager menu 1's struktur

Menu 1
- undermenu 1 (1 <tr>)
- undermenu 2 (1 <tr>)
osv..

Nr jeg så klikker på menu 1, skal undermenu 1 og 2 klappe op og i.
Avatar billede roenving Novice
13. oktober 2004 - 14:17 #9
Så skal du f.eks. sådan, som er vist i http://www.eksperten.dk/spm/414464 ...
Avatar billede lund_dk Praktikant
03. januar 2005 - 14:41 #10
ligger du et svar  ;)
Avatar billede roenving Novice
03. januar 2005 - 16:41 #11
Velbekomme '-)
Avatar billede roenving Novice
03. januar 2005 - 17:01 #12
-- og 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