Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 17:00 Der er 19 kommentarer og
1 løsning

Prøver og lave en menu med undermenuer

<html>

    <head>
    <title>hierarkisk menu</title>
    <script src="menu.js"></script>
    <meta name="generator" content="stone's webwriter 3.5">
    <style type="text/css">
    #dyntable    {
                position:absolute;
                top:20px;
                left:20px;
                border:1px black solid;
                cursor:pointer;
                cursor:hand;
                width:140px;
                }
    .menu        {
                height:22px;
                color:#FFFF99;
                background-color:#00CCFF;
                font-family:verdana;
                font-size:14px;
                font-weight:bold;
                }
    .menuhover    {
                height:22px;
                color:white;
                background-color:gray;
                font-family:verdana;
                font-size:14px;
                font-weight:bold;
                }
    .menulink    {
                color:#FFFF99;
                text-decoration:none;
                }
    .submenu    {
                width:100%;
                color:black;
                background-color:#CCFFFF;
                font-family:verdana;
                font-size:12px;
                text-decoration:none;
                }
    a.submenu:hover{
                font-weight:bold;
                color:white;
                background-color:gray;
        }
    </style>
    </head>
   
    <body bgcolor="#0098CD">   
    <table id="dyntable" border="1" cellpadding="1" cellspacing="1">
        <tr onclick="openmenu('menu1',this)">
            <td class="menu" onmouseover="highlight(this)" onmouseout="donthighlight(this)"><img src="c.gif"><a href="#" class="menulink" target="main"> St kompagniet</a></td>
        </tr>
        <tr onclick="openmenu('menu2',this)">
            <td class="menu" onmouseover="highlight(this)" onmouseout="donthighlight(this)"><img src="c.gif"><a href="#" class="menulink" target="main"> 1. kompagni</a></td>
        </tr>
        <tr onclick="openmenu('menu3',this)">
            <td class="menu" onmouseover="highlight(this)" onmouseout="donthighlight(this)"><img src="c.gif"><a href="#" class="menulink" target="main"> 2. kompagni</a></td>
        </tr>
        <tr onclick="openmenu('menu4',this)">
            <td class="menu" onmouseover="highlight(this)" onmouseout="donthighlight(this)"><img src="c.gif"><a href="#" class="menulink" target="main"> 3. kompagni</a></td>
        </tr>
    </table>
   
    <div id="Stabskompagniet" style="visibility:hidden">
        <a href="Stabskompagniet" class="submenu" target="main">Kommando delingen</a><br>
        <a href="Stabskompagniet" class="submenu" target="main">1. deling</a><br>
        <a href="Stabskompagniet" class="submenu" target="main">2. deling</a><br>
        <a href="Stabskompagniet" class="submenu" target="main">3. deling</a></div>
    <div id="1. kompagni" style="visibility:hidden">
        <a href="1. kompagni" class="submenu" target="main">Kommando delingen</a><br>
        <a href="1. kompagni" class="submenu" target="main">1. deling</a><br>
        <a href="1. kompagni" class="submenu" target="main">2. deling</a><br>
        <a href="1. kompagni" class="submenu" target="main">3. deling</a></div>
    <div id="2. kompagni" style="visibility:hidden">   
        <a href="2. kompagni" class="submenu" target="main">Kommando delingen</a><br>
        <a href="2. kompagni" class="submenu" target="main">1. deling</a><br>
        <a href="2. kompagni" class="submenu" target="main">2. deling</a><br>
        <a href="2. kompagni" class="submenu" target="main">3. deling</a></div>
    <div id="3. kompagni" style="visibility:hidden">   
        <a href="3. kompagni" class="submenu" target="main">Kommando delingen</a><br>
        <a href="3. kompagni" class="submenu" target="main">1. deling</a><br>
        <a href="3. kompagni" class="submenu" target="main">2. deling</a><br>
        <a href="3. kompagni" class="submenu" target="main">3. deling</a></div>
    </body>
   
</html>

er der en der kan fortælle mig hvorfor det ikke virker og fortælle mig hvordan jeg får det til og virke.
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 17:05 #1
Hvorfor postede du ikke bare koden i http://www.eksperten.dk/spm/412687 i stedet for at lave et nyt spørgsmål...


Jeg vil opfordre dig til at lukke et af dem - og da dette har koden i sig, så tilrådes du at lukke http://www.eksperten.dk/spm/412687
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 17:07 #2
kan ikke huske hvordan det er jeg lukker et spørgsmål
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 17:07 #3
du lægger et svar i http://www.eksperten.dk/spm/412687 og accepterer derefter det selv....
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 17:10 #4
når så er det gjord, kan du/i så hjælpe mig eller hvad ???
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 17:12 #5
jeg skal da prøve :-)
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 17:21 #6
tak
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 17:33 #7
hmm -- er det muligt også at få fat i din js fil (menu.js) ... meget af koden kager uden den...
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 17:36 #8
vil du ha' den herind eller mail ?
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 17:37 #9
her ... løsninger skal løses igennem eksperten .... og hvis jeg ikke kan finde ud af det, så er koden her, så andre folk kan se den ... uden at du behøver at sende den frem og tilbage til allemulige...
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 17:39 #10
ok værsågo så

var menStatus = new Array();

function openMenu(menuID,object) {
    rowID=object.rowIndex+1;
    obj=object.parentNode;
    if (!menuStatus[menuID] || null) {
        obj.rows[object.rowsIndex].cell[0].innerHTML = obj.rows[object.rowIndex].cell[0].innerHTML.replace(/c.gif/,'o.gif');
        obj.insertROw(rowID);
        obj.rows[rowID].insertCell(0);
        obj.rows[rowID].cells[0].innerHTML=document.getElementByld(menuID).innerHTML;
        obj.rows[rowID].cells[0].className='submenu';
        menuStatus[menuID]=true }
    else {
        obj.rows[object.rowIndex].cell[0].innerHTML = obj.rows[object.rowIndex].cell[0].innerHTML.replace(/0.gif/'c.gif');
        obj.deletRow(rowID);
        menuStatus[menuID]=false }
}

function highlight[object){
    object.className='menuhover';
}

function dontHighlight(object){
    object.claseName='menu';
}
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 17:56 #11
og ... menu.js

linie 14 -- mangler et , mellem /c.gif/ og 'o.gif'

linie 19 -- du har highlight[) .. skal være highlight()

du kalder donthightligt() mange steder .... husk at der er forskel på store og små bogstaver... (din funktion er defineret som dontHighlight() )
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 17:59 #12
det var så nogle formalia --- så kan jeg se at du bruger openMenu funktionen til at ville åbne nogle menuer ....


men det hjælper ikke noget at du kalde menuen for f.eks. "Stabskompagniet" når du ønsker at åbne menu1 (i koden)
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 18:11 #13
linie 14 og 19 er blevet rettet
det med menu1..2..3..4 har jeg rettet

så nu vil den gerne highlighte men ikke fjerne highlighten og når jeg klikker på menupunktet kommer der stadig ikke nogen undermenuer frem
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 18:14 #14
*arbejder videre - skulle lige se nyhederne*
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 18:15 #15
det er fair nok, så dem også selv ;-)
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 18:39 #16
Er dog påbegyndt lidt starten forfra... håber ikke at du har noget imod det...
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 18:48 #17
næ næ bare det kommer til en løsning
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 19:22 #18
prøv denne kode...

<html>
  <head>
    <script type="text/javascript">
      var active = null;
      var closeTimer;
      function hi(obj) {
        obj.className = "menuEntry_HI";
      }
      function lo(obj) {
        obj.className = "menuEntry";
      }   
      function openMenu(entry, str) {
        if(active && active!=entry) {
          closeMenu();
        }   
        var sub = document.getElementById(str+"_content");
        sub.style.left= entry.offsetLeft + 150;
        sub.style.top = entry.offsetTop;
        sub.style.display="block";
        active = sub;
        active.label = str;
      }
      function scheduleClose(str) {
        closeTimer = setTimeout("closeMenu()", 500);
      }
      function closeMenu() {
        window.status ="closing "+active.label;
        active.style.display="none";
        active = null;
        clearTimeout(closeTimer);
      }
      function sustainMenu() {
        clearTimeout(closeTimer);
        window.status = "sustaining..";
        active.style.display="block";
      }
    </script>
    <style type="text/css">
      .menuEntry {
        width: 150px;
      }
      .menuEntry_HI {
        width: 150px;
        background-color: #ffd;
      }
      .submenu {
        z-index: 2;
        display: none;
        position: absolute;
        border: 1px solid #666;
        width: 200px;
      }
    </style>   
  </head>
 
  <body>
    <div>
      <div class="menuEntry"
        onmouseover="hi(this); openMenu(this, 'menu1');"
        onmouseout=" lo(this); scheduleClose('menu1');"
      > Åbn menu 1 </div>
      <div id="menu1_content" class="submenu"
        onmouseover="sustainMenu();"
        onmouseout="closeMenu();">
        xxx<br/>
        xxx<br/>
        xxx<br/>
        xxx<br/>
        xxx<br/>
        xxx<br/>
        xxx<br/>
      </div>

      <div class="menuEntry"
        onmouseover="hi(this); openMenu(this, 'menu2');"
        onmouseout=" lo(this); scheduleClose('menu2');"
      > Åbn menu 2 </div>
      <div id="menu2_content" class="submenu"
        onmouseover="sustainMenu();"
        onmouseout="closeMenu();">
        yyy<br/>
        yyy<br/>
        yyy<br/>
        yyy<br/>
        yyy<br/>
        yyy<br/>
        yyy<br/>
        yyy<br/>
      </div>

    </div>
  </body>
</html>
Avatar billede bearhugx Nybegynder
11. oktober 2003 - 19:23 #19
Det er ikke den pæneste kode, men den burde virke...
Avatar billede thomasmyg Nybegynder
11. oktober 2003 - 20:49 #20
Nå jeg fandt den fejl er løste det hele, du får dog pointet alligevel, du fandt jo en del andre fejl.
hvis du kigger på linie 24 i menu.js filen, så skal der stå

object.className='menu';

men det gør der ikke, så problemet er løst
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