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>
Annonceindlæg fra Barco
04. februar 2004 - 13:56
#1
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....
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'> - undermeu<br> - 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'> - undermeu<br> - 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'> - undermeu<br> - undermenu</div> //>Rune
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....?
04. februar 2004 - 14:17
#5
Hvad mener du? Er det når du sige "View Source" eller? //>Rune
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.
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
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>
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'> - undermenu<br> - 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'> - undermenu<br> - 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'> - undermenu<br> - undermenu</div>
Vi tilbyder markedets bedste kurser inden for webudvikling