Avatar billede javanewbie Nybegynder
04. februar 2004 - 13:53 Der er 7 kommentarer og
2 løsninger

Menu med undermenuer

Jeg har kigget lidt på muligheden for at lave en menu, der ved hjælp af javascript kan have nogle undermenuer til nogle menupunkter.

Trykker man på MENU 1 kommer der et antal undermenuer til syne, og trykker man på MENU 2 bliver MENU 1 først lukket sammen igen hvorefter MENU 2 foldes ud.

Ud fra det jeg har set, har jeg strikket dette sammen, men det fungerer ikke :-(

Hvor er jeg gået galt i byen?

------------------------------------------------------

<html>
<head>
<style>
.menu {
    height : 20px;
    overflow : hidden;
}
html { margin : 0px; }
body { margin : 0px; margin-left : 10px; }
</style>
<script language=JavaScript1.2>
function toggleMenu(e) {
    collapseMenus();
    expandMenu(e);
}
function collapseMenus();
    element = document.getElementById('menu1');
    element.style.height=20;
    element = document.getElementById('menu2');
    element.style.height=20;
    element = document.getElementById('menu3');
    element.style.height=20;
}
function expandMenu(e) {
    element = document.getElementById(e);
    element.style.height=80;
}
</script>
</head>
<body>
<div class="menu" id="menu1" onclick="toggleMenu('menu1')">
<a href="">Menu punkt 1</a><br />
- <a href="">Undermenu punkt 1</a><br />
- <a href="">Undermenu punkt 2</a><br />
- <a href="">Undermenu punkt 3</a><br />
</div>
<div class="menu" id="menu2" onclick="toggleMenu('menu2')">
<a href="">Menu punkt 2</a><br />
- <a href="">Undermenu punkt 1</a><br />
- <a href="">Undermenu punkt 2</a><br />
- <a href="">Undermenu punkt 3</a><br />
</div>
<div class="menu" id="menu3" onclick="toggleMenu('menu3')">
<a href="">Menu punkt 3</a><br />
- <a href="">Undermenu punkt 1</a><br />
- <a href="">Undermenu punkt 2</a><br />
- <a href="">Undermenu punkt 3</a><br />
</div>
</body>
</html>
Avatar billede medions Nybegynder
04. februar 2004 - 13:56 #1
Avatar billede javanewbie Nybegynder
04. februar 2004 - 14:07 #2
Det er jo ASP eller noget? Så vil jeg næsten hellere have et link til et konkret eksempel på den HTML der bliver genereret....
Avatar billede medions Nybegynder
04. februar 2004 - 14:11 #3
Here you go...

<script language="JavaScript">
    function showMnu(id) {
        var styleCheck = document.getElementById("mnu" + id).style.display;
        //alert(styleCheck);
       
        if (styleCheck == "inline") {
            document.getElementById("mnu" + id).style.display = "none";
        }
        if (styleCheck == "none") {
            document.getElementById("mnu" + id).style.display = "inline";
        }
    }
</script>

<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;' OnClick='showMnu(1);'>Hosting</div>
<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;' id='mnu1'>&nbsp;-&nbsp;undermeu<br>&nbsp;-&nbsp;undermenu</div>
<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;' OnClick='showMnu(2);'>Bestilling</div>
<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;' id='mnu2'>&nbsp;-&nbsp;undermeu<br>&nbsp;-&nbsp;undermenu</div>
<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;' OnClick='showMnu(3);'>Kontakt</div>
<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;' id='mnu3'>&nbsp;-&nbsp;undermeu<br>&nbsp;-&nbsp;undermenu</div>

//>Rune
Avatar billede javanewbie Nybegynder
04. februar 2004 - 14:13 #4
Takker. Det funker.

I øvrigt.... Jeg fik kigget lidt på dit link. Det ser for mig ud som om både javascript og VBScript er pastet ind to gange....?
Avatar billede medions Nybegynder
04. februar 2004 - 14:17 #5
Hvad mener du?
Er det når du sige "View Source" eller?

//>Rune
Avatar billede javanewbie Nybegynder
04. februar 2004 - 14:31 #6
Prøv at trykke på dit eget link i dit svar. Læs så hvad der står i tekstboksen.
Avatar billede medions Nybegynder
04. februar 2004 - 14:34 #7
ahh, det er fordi det der står i tekstboxen er hvordan du sammensætter det med en database gennem ASP så det bliver dynamisk og nemt at tilføje nye menupunkter.

:)

//>Rune
Avatar billede javanewbie Nybegynder
04. februar 2004 - 14:36 #8
Øhhhhh. Men jeg ser dele af dokumentet TO gange? Her er hvad jeg ser:
Bemærk at der er TO <SCRIPT> med den samme funktion i og TO <%  %> blokke.
------------------------------------------------------------------

<html>
<head>
    <title></title>
</head>
<body>
<SCRIPT language=JavaScript>
    function showMnu(id) {
        var styleCheck = document.getElementById("mnu" + id).style.display;
        //alert(styleCheck);
       
        if (styleCheck == "inline") {
            document.getElementById("mnu" + id).style.display = "none";
        }
        if (styleCheck == "none") {
            document.getElementById("mnu" + id).style.display = "inline";
        }
    }
</SCRIPT>

<SCRIPT language=JavaScript>
    function showMnu(id) {
        var styleCheck = document.getElementById("mnu" + id).style.display;
        //alert(styleCheck);
       
        if (styleCheck == "inline") {
            document.getElementById("mnu" + id).style.display = "none";
        }
        if (styleCheck == "none") {
            document.getElementById("mnu" + id).style.display = "inline";
        }
    }
</SCRIPT>
<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")
        SQL = "SELECT * FROM menu"
        Set rs = Conn.Execute(SQL)

    While NOT rs.EOF
        With Response
            .Write("<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;' OnClick='showMnu(" & rs("mnuID") & ");'>" & rs("mnuNavn") & "</div>" & vbCrLf)
            .Write("<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;' id='mnu" & rs("mnuID") & "'> - undermeu<br> - undermenu</div>" & vbCrLf)
        End With
    rs.MoveNext
    Wend
   
    Set rs = Nothing
    Conn.Close
    Set Conn = Nothing
%>
<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db.mdb")
        SQL = "SELECT * FROM menu"
        Set rs = Conn.Execute(SQL)

    While NOT rs.EOF
        With Response
            .Write("<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 13px;' OnClick='showMnu(" & rs("mnuID") & ");'>" & rs("mnuNavn") & "</div>" & vbCrLf)
            .Write("<div style='Cursor:Hand; Font-Family:Verdana; Font-Size: 11px;display:none;' id='mnu" & rs("mnuID") & "'> - undermeu<br> - undermenu</div>" & vbCrLf)
        End With
    rs.MoveNext
    Wend
   
    Set rs = Nothing
    Conn.Close
    Set Conn = Nothing
%>

</body>
</html>
Avatar billede roenving Novice
04. februar 2004 - 16:01 #9
>>rune aka medions

Kunne du ikke lige tage at ændre dine scripts den anelse, der skal til at de næsten er xhtml og iøvrigt kompatible:

<script language="JavaScript" type="text/javascript">
    function showMnu(id) {
        var styleCheck = document.getElementById("mnu" + id).style.display;
       
        if (styleCheck == "inline") {
            document.getElementById("mnu" + id).style.display = "none";
        }
        if (styleCheck == "none") {
            document.getElementById("mnu" + id).style.display = "inline";
        }
    }
</script>

<div style='cursor:hand;cursor:pointer; font-family:verdana,sans-serif; font-size: 13px;' onclick='showMnu(1);'>Hosting</div>
<div style='cursor:hand;cursor:pointer; font-family:verdana,sans-serif; font-size: 11px;display:none;' id='mnu1'>&nbsp;-&nbsp;undermenu<br>&nbsp;-&nbsp;undermenu</div>
<div style='cursor:hand;cursor:pointer; font-family:verdana,sans-serif; font-size: 13px;' onclick='showMnu(2);'>Bestilling</div>
<div style='cursor:hand;cursor:pointer; font-family:verdana,sans-serif; font-size: 11px;display:none;' id='mnu2'>&nbsp;-&nbsp;undermenu<br>&nbsp;-&nbsp;undermenu</div>
<div style='cursor:hand;cursor:pointer; font-family:verdana,sans-serif; font-size: 13px;' onclick='showMnu(3);'>Kontakt</div>
<div style='cursor:hand;cursor:pointer; font-family:verdana,sans-serif; font-size: 11px;display:none;' id='mnu3'>&nbsp;-&nbsp;undermenu<br>&nbsp;-&nbsp;undermenu</div>
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