Jag gjorde om din meny ordentligt. Det fanns t.ex. ingen aledning att ha OL- och A-element. Ledsen att jag ersatte din css med en egen, men det ska vara lätt att se vad du ska ändra. Du kan även, om du vill ha flera lager av undermenyer.
menu.html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Menu</title>
<script src="menu.js" type="text/javascript"></script>
<link href="menu.css" rel="stylesheet" type="text/css"/>
</head>
<body bgcolor="#C2C287" text="#000000" id="all" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10" link="#660000" vlink="#660000" alink="#660000">
<ul id="tree-menu">
<li class="toggle"><div>Meny 1</div>
<ul>
<li><a href="">Sub 1-1</a></li>
<li><a href="">Sub 1-2</a></li>
<li><a href="">Sub 1-3</a></li>
</ul>
</li>
<li class="toggle"><div>Meny 2</div>
<ul>
<li><a href="">Sub 2-1</a></li>
<li><a href="">Sub 2-2</a></li>
</ul>
</li>
<li class="toggle"><div>Meny 3</div>
<ul>
<li><a href="">Sub 3-1</a></li>
<li><a href="">Sub 3-2</a></li>
<li><a href="">Sub 3-3</a></li>
<li><a href="">Sub 3-4</a></li>
</ul>
</li>
<li class="toggle"><div>Meny 4</div>
<ul>
<li><a href="">Sub 4-1</a></li>
<li><a href="">Sub 4-2</a></li>
</ul>
</li>
</ul>
</body>
</html>
menu.css
ul#tree-menu {
list-style: none;
padding: 0;
width: 15em;
}
ul#tree-menu li.toggle div {
background: #576;
border-color: #798 #798 #354 #354;
border-style: solid;
border-width: 1px;
color: white;
font-size: small;
font-weight: bold;
padding: 6px 10px;
}
ul#tree-menu li.toggle div:hover {
background: #687;
border-color: #8a9 #8a9 #465 #465;
border-style: solid;
border-width: 1px;
}
ul#tree-menu li.toggle ul {
background: #eee;
border: 3px solid #354;
border-top: none;
display: none;
list-style: none;
padding: 6px 10px;
}
ul#tree-menu li.toggle ul a {
color: #354;
font-size: small;
font-weight: bold;
text-decoration: none;
}
menu.js
window.onload = function() {
initiateTreeMenu("tree-menu");
}
function initiateTreeMenu(id) {
var tree_root = document.getElementById(id);
var li_elements = tree_root.getElementsByTagName("LI");
for (var i in li_elements)
if (li_elements[i].className == "toggle") {
var activator = li_elements[i].firstChild;
while (activator.nodeType != 1 && activator.tagName != "DIV")
activator = activator.nextSibling;
activator.onclick = toggleState;
}
}
function toggleState(e) {
var element = window.event ? window.event.srcElement : e.target;
var target = element.nextSibling;
while (target.nodeType != 1 && target.tagName != "DIV")
target = target.nextSibling;
with (target)
style.display = style.display =="block" ? "none" : "block";
}
