31. januar 2005 - 09:53
Der er
8 kommentarer og 1 løsning
Dropdown menu
Haalløj. Hmm det driller for tiden.. :-( Jeg har fundet og lavet en menu hvor den viser to niveauer ned ved tryk på en. Her er det dog den ikke skjuler den første trykkede på hvis man trykker på en anden. Det vil jeg gerne kunne lade sig gøre, da det jo ellers kan blive en frygtelig lang menu. Det ser således ud: <script type="text/javascript"> if (!document.getElementById) document.getElementById = function() { return null; } function initializeMenu(menuId, actuatorId) { var menu = document.getElementById(menuId); var actuator = document.getElementById(actuatorId); if (menu == null || actuator == null) return; actuator.onclick = function() { var display = menu.style.display; this.parentNode.style.listStyleImage = (display == "block") ? "" : ""; menu.style.listStyleImage = ""; menu.style.display = (display == "block") ? "none" : "block"; return false; } } </script> <script type="text/javascript"> <!-- window.onload = function() { initializeMenu("1Menu", "1Actuator"); initializeMenu("2Menu", "2Actuator"); initializeMenu("3Menu", "3Actuator"); } //--> </script> <td class="tdmenu1"> <div id="mainMenu"> <ul id="menuList"> <li class="menubar"> <a href="" id="1Actuator" class="actuator" accesskey="p">1</a> <ul id="1Menu" class="menu"> <li><a href="../menu11.html">menu1.1</a></li> <li><a href="../menu12.html">menu1.2</a></li> </ul> </li> <li class="menubar"> <a href="" id="2Actuator" class="actuator" accesskey="n">2</a> <ul id="2Menu" class="menu"> <li><a href="../1/menu21.htm">menu2.1</a></li> <li><a href="../2/menu22.htm">menu2.2</a></li> <li><a href="../3/menu23.htm">menu2.3</a></li> </ul> </li> Ideer anyone?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
31. januar 2005 - 10:01
#1
Du skal lige vide, at det ikke er tilladt at bruge et tal som første tegn i et id (selvom det virker i visse browsere !-)
31. januar 2005 - 10:06
#2
Tilføj en anelse, så den sidst rørte menu kan findes: <script type="text/javascript"> if (!document.getElementById) document.getElementById = function() { return null; } var oldmenu = null; function initializeMenu(menuId, actuatorId) { var menu = document.getElementById(menuId); var actuator = document.getElementById(actuatorId); if (menu == null || actuator == null) return; actuator.onclick = function() { if(oldmenu){ oldmenu.style.listStyleImage = ""; oldmenu.style.display = 'none'; } var display = menu.style.display; this.parentNode.style.listStyleImage = (display == "block") ? "" : ""; menu.style.listStyleImage = ""; menu.style.display = (display == "block") ? "none" : "block"; oldmenu = menu; return false; } } window.onload = function() { initializeMenu("Menu1", "Actuator1"); initializeMenu("Menu2", "Actuator2"); initializeMenu("Menu3", "Actuator3"); } </script>
31. januar 2005 - 11:49
#3
du kan ikke skrive det ind i min kode så jeg kan copy/paste det hele? Kan ikke få det til at virke nemlig. Tak for hjælpen. igen forresten ;-)
31. januar 2005 - 11:55
#4
hmm nu virker det faktisk. smed bare dit script ind under mit. <script>mit skript</script> <script>dit skript</script> men det virker desværre ikke i firefox.... :-( den viser kun menu3...
31. januar 2005 - 12:02
#5
Får du ikke nogen fejl ?-) Prøv at kigge på Funktioner --> Javascript-konsol !-)
31. januar 2005 - 12:04
#6
nej. den viser ingen fejl... Der kommer blot ikke noget når jeg trykker på de to første menuer, men kun den tredje... :-(
31. januar 2005 - 12:08
#7
Fandt "fejlen". Havde referet med lille bogstav til en med stor bogstav. Firefox er altså case sensitiv imodsætning til ie?? :-D Mange tak for hjælpen. skal have et svar for point igen.. ;-)
31. januar 2005 - 12:22
#8
Velbekomme '-)
02. april 2005 - 12:00
#9
Tak for point ;~} -- og ECMAscript er case-sensitiv i alle implementationer, uanset om de kaldes javascript (de fleste steder) eller Jscript, som i IE !-)
Vi tilbyder markedets bedste kurser inden for webudvikling