|
bideur
Invité
|
 |
| Posté le: Jeu 06 Sep 2007, 9:20 am |
|
 |
 |
 |
 |
bonjour,
J'ai un menu vertical basé sur des listes à puces imbriquées (rubrique / sous-rubrique / sous-sous-rubrique), qui s'ouvrent lorsqu'on clique sur un des titres. J'arrive à conserver l'etat cliqué "rubrique / sous-rubrique", mais pas l'etat complet "rubrique / sous-rubrique / sous-sous-rubrique"
je vous met le code JS que j'utilise (mon menu CSS + le code JS sont des adaptations / combinaisons de plusieurs scripts)
Merci pour le coup de main
var persistmenu="yes"
var persisttype="sitewide"
if (document.getElementById){
document.write('<style type="text/css">\n')
document.write('.submenu { display: none; }\n')
document.write('.subrub { display: none; }\n')
document.write('</style>\n')
}
function SwitchMenu(obj){
if(document.getElementById){
var el = document.getElementById(obj);
var ar = document.getElementById("masterdiv").getElementsByTagName("div");
if(el.style.display != "block"){
for (var i=0; i<ar.length; i++){
if (ar.className=="submenu")
ar[i].style.display = "none";
}
el.style.display = "block";
}else{
el.style.display = "none";
}
}
}
function SwitchRub(obj){
if(document.getElementById){
var el1 = document.getElementById(obj);
var ar1 = document.getElementById("masterdiv").getElementsByTagName("div");
if(el1.style.display != "block"){
for (var i=0; i<ar1.length; i++){
if (ar1[i].className=="subrub")
ar1[i].style.display = "none";
}
el1.style.display = "block";
}else{
el1.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 |
|
|
|