Et lille problem med show/hide menu
Hej eksperter :)Jeg har en side (www.music4you.dk), som jeg har et lille problem med.
Jeg har lavet en menu i Javascript, så når man trykker på et link, så viser der sig en række undermenuer.
Jeg vil gerne have lavet det sådan, så hvis man trykker på forsiden, så lukker alle dem, der er åben (hvilket som regel er en, da den automatisk lukker den første du trykkede på, hvis du trykker på et andet link).
Koden ser således ud:
<script type="text/javascript">
var persistmenu="yes"
var persisttype="sitewide"
if (document.getElementById){
document.write('<style type="text/css">\n')
document.write('.undermenu{display: none;}\n')
document.write('</style>\n')
}
function SwitchMenu(obj){
if(document.getElementById){
var el = document.getElementById(obj);
var ar = document.getElementById("masterdiv").getElementsByTagName("span");
if(el.style.display != "block"){
for (var i=0; i<ar.length; i++){
if (ar[i].className=="undermenu")
ar[i].style.display = "none";
}
el.style.display = "block";
}else{
el.style.display = "none";
}
}
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function onloadfunction(){
if (persistmenu=="yes"){
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=get_cookie(cookiename)
if (cookievalue!="")
document.getElementById(cookievalue).style.display="block"
}
}
function savemenustate(){
var inc=1, blockid=""
while (document.getElementById("sub"+inc)){
if (document.getElementById("sub"+inc).style.display=="block"){
blockid="sub"+inc
break
}
inc++
}
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=(persisttype=="sitewide")? blockid+";path=/" : blockid
document.cookie=cookiename+"="+cookievalue
}
if (window.addEventListener)
window.addEventListener("load", onloadfunction, false)
else if (window.attachEvent)
window.attachEvent("onload", onloadfunction)
else if (document.getElementById)
window.onload=onloadfunction
if (persistmenu=="yes" && document.getElementById)
window.onunload=savemenustate
</script>
Og hvis det er vigtigt, så ser noget af (selve) menuen således ud:
<div id="masterdiv">
<div class="menutitel"><a href="http://www.music4you.dk">Forside</a></div>
<div class="menutitel" onClick="SwitchMenu('sub1')"><a href="#">CD-Indspilning</a></div>
<span class="undermenu" id="sub1">
» <a href="default.aspx?pageId=10">Koncept</a><br>
» <a href="default.aspx?pageId=11">Polterabend</a><br>
» <a href="default.aspx?pageId=12">Institutioner</a><br>
» <a href="default.aspx?pageId=13">Teambuilding</a><br>
» <a href="default.aspx?pageId=14">Bands</a><br>
» <a href="default.aspx?pageId=15">Udstyrsliste</a><br>
» <a href="default.aspx?pageId=17">Referencer</a><br>
» <a href="default.aspx?pageId=18">Priser</a><br>
» <a href="default.aspx?pageId=19">F A Q</a><br> </span>
<div class="menutitel" onClick="SwitchMenu('sub2')"><a href="#">Institutioner</a></div>
<span class="undermenu" id="sub2">
» <a href="default.aspx?pageId=28">Koncept</a><br>
» <a href="default.aspx?pageId=20">Musikalsk samvær</a><br>
» <a href="default.aspx?pageId=22">CD indspilning</a><br>
» <a href="default.aspx?pageId=21">Undervisning</a><br>
» <a href="default.aspx?pageId=23">Referencer</a><br>
</span>
Håber i kan hjælpe mig
