可以展开刷新不改变的二级树形菜单,大类点击不展开小类,小类有旁边的图标展开(图)

本文介绍了一种实现刷新页面时不改变二级树形菜单状态的方法。通过使用JavaScript和Cookies来记录并保持用户展开的菜单项状态,确保了菜单在跨页面导航时的一致性。
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
以展开刷新不改变的二级树形菜单,大类点击不展开小类,小类有旁边的图标展开。
http://www.corange.cn//uploadfiles/334_38825.jpg

<!--#include file="conn.asp"-->
<SCRIPT language=JavaScript> 
    var __cc_uid="shenglu"; 
</SCRIPT>
<SCRIPT type=text/javascript>
var persistmenu="yes" //"yes" or "no". Make sure each SPAN content contains an incrementing ID starting at 1 (id="sub1", id="sub2", etc)
var persisttype="sitewide" //enter "sitewide" for menu to persist across site, "local" for this page only

if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">/n')
document.write('.submenu{display: none;}/n')
document.write('</style>/n')
}

function SwitchMenu(obj){
        if(document.getElementById){
        var el = document.getElementById(obj);
        var ar = document.getElementById("masterdiv").getElementsByTagName("tr"); //DynamicDrive.com change
                if(el.style.display != "block"){ //DynamicDrive.com change
                        for (var i=0; i<ar.length; i++){
                                if (ar[i].className=="submenu") //DynamicDrive.com change
                                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>


<STYLE type=text/css>.menutitle {
PADDING-RIGHT: 1px; PADDING-LEFT: 1px; MARGIN-BOTTOM: 1px; PADDING-BOTTOM: 1px; MARGIN-LEFT: auto; WIDTH: 200px; CURSOR: pointer; COLOR: #000000; MARGIN-RIGHT: auto; font-size:12px;font-weight:bold;
}
.submenu {
        MARGIN-BOTTOM: 0.5em
}
</STYLE>

<table width="200" border="0" cellspacing="0" cellpadding="0" align="left">

                 <Tr><td class="catalog" align="center" bgcolor="#666666" height="25">Product Catalog</td></Tr>
              <tr> 
                <td> 
                 <!--菜单开始--><TABLE id=masterdiv cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
              <TBODY>
                          
                          <%
                set rsBigClass1=server.CreateObject("adodb.recordset")
rsBigClass1.open "Select * From type1",conn,1,1
    j=0
        do while not rsBigClass1.eof
        bigclassname=rsbigclass1("bigclassname")
        sanjib=bigclassname
        if inStr(sanjib," ")>0 then '判断是否含有“ ”字符
        sanjib=replace(sanjib," ","-")  '替换“ ”字符为“-”
        end if
        j=j+1
        
%>
              <TR class=menutitle>
                <TD height="20">&nbsp;&nbsp;&nbsp;&nbsp;<a href="product_<%=sanjib%>__page_1.htm" class="leftmenu"><%=rsBigClass1("BigClassName")%></a>
                </TD><Td valign="middle"  onClick="SwitchMenu('sub<%=j%>')"><a href="#" onClick="javascript:showtable<%="a"&i%>();"><%set rscheck=server.CreateObject("adodb.recordset")
          rscheck.open "Select * From type2 Where bigclassid=" & rsBigClass1("bigclassid"),conn,1,1
          if not(rscheck.bof and rscheck.eof) then%><img src=image/nvdown.jpg border="0"><%end if%></a></td></TR>
                                
                                   <TR class=submenu id=sub<%=j%>>
                <TD colspan="2">
                                
                                
                                
                  <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
                                  
                    <TBODY>
                                        <%
          set rsSmallClass1=server.CreateObject("adodb.recordset")
          rsSmallClass1.open "Select * From type2 Where bigclassid=" & rsBigClass1("bigclassid"),conn,1,1
          if not(rsSmallClass1.bof and rsSmallClass1.eof) then
                do while not rsSmallClass1.eof
                smallclassname=rssmallclass1("smallclassname")
                sanjis=smallclassname
                if inStr(sanjis," ")>0 then '判断是否含有“ ”字符
                sanjis=replace(sanjis," ","-")  '替换“ ”字符为“-”
                end if
        %>        
                                        <tr><Td><a href="product_<%=sanjib%>_<%=sanjis%>_page_1.htm" class="leftmenu">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<%=rsSmallClass1("SmallClassName")%></a></Td></tr>
                                        <%
                        rsSmallClass1.movenext
                loop
          end if
          rsSmallClass1.close
          set rsSmallClass1=nothing        %>
                                        </TBODY></TABLE>
                                        </TD></TR>
                                        <%
                                        
                                        rsBigClass1.movenext
        loop
        rsbigclass1.close
        set rsbigclass1=nothing%>
        
        </TBODY></TABLE></td>
              </tr>
                
                   <Tr><Td height="25"></Td></Tr>
                
                                                </table>

http://www.corange.cn/archives/2008/04/914.html
常用的JS后台导航菜单,可刷新变 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml:lang="UTF-8" lang="UTF-8"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="UTF-8" /> <title>后台管理</title> <style type="text/css"> body {margin:0;text-align:center;color:#000;font:normal 12px Arial,Verdana,Tahoma;text-align:center;background:#C8D0D5;line-height:150%;} a:link,a:visited {color:#385065;text-decoration:none} a:hover {text-decoration:underline} #menu {width:150px;margin:0px 15px;padding:0px;text-align:left;list-style:none} #menu .item {margin:5px 0px;padding:0px;list-style:none} a.title:link, a.title:visited, a.title:hover {display:block;background:url(http://www.tblog.com.cn/attachments/month_0609/m20069110491.gif) no-repeat;color:#385065;font-weight:bold;padding:2px 0 0 22px;width:128px;line-height:23px;cursor:pointer;text-decoration:none} #menu .item ul {border:1px solid #9FACB7;margin:0;width:118px;padding:3px 0px 3px 30px;background:#fff;list-style:none;display:none} #menu .item ul li {display:block;} </style> [removed] // --- 获取ClassName document.getElementsByClassName = function(cl) { var retnode = []; var myclass = new RegExp('\\b'+cl+'\\b'); var elem = this.getElementsByTagName('*'); for (var j = 0; j < elem.length; j++) { var classes = elem[j].className; if (myclass.test(classes)) retnode.push(elem[j]); } return retnode; } // --- 隐藏所有 function HideAll() { var items = document.getElementsByClassName("optiton"); for (var j=0; j<items.length; j++) { items[j].style.display = "none"; } } // --- 设置cookie function setCookie(sName,sValue,expireHours) { var cookieString = sName + "=" + escape(sValue); //;判断是否设置过期时间 if (expireHours>0) { var date = new Date(); date.setTime(date.getTime + expireHours * 3600 * 1000); cookieString = cookieString + "; expire=" + date.toGMTString(); } [removed] = cookieString; } //--- 获取cookie function getCookie(sName) { var aCookie = [removed].split("; "); for (var j=0; j < aCookie.length; j++){ var aCrumb = aCookie[j].split("="); if (escape(sName) == aCrumb[0]) return unescape(aCrumb[1]); } return null; } window { var show_item = "opt_1"; if (getCookie("show_item") != null) { show_item= "opt_" + getCookie("show_item"); } document.getElementById(show_item).style.display = "block"; var items = document.getElementsByClassName("title"); for (var j=0; j<items.length; j++) { items[j] { var o = document.getElementById("opt_" + this.name); if (o.style.display != "block") { HideAll(); o.style.display = "block"; setCookie("show_item",this.name); } else { o.style.display = "none"; } } } } [removed] </head> <body> <ul id="menu"> <li class="item"><a href="[removed]void(0)" class="title" name="1">基本信息</a> <ul id="opt_1" class="optiton"> <li><a href="#">企业简介</a></li> <li><a href="#">企业新闻</a></li> </ul> </li> <li class="item"><a href="[removed]void(0)" class="title" name="2">系统管理</a> <ul id="opt_2" class="optiton"> <li><a href="#">企业简介</a></li> <li><a href="#">企业新闻</a></li> </ul> </li> <li class="item"><a href="[removed]void(0)" class="title" name="3">系统管理</a> <ul id="opt_3" class="optiton"> <li><a href="#">会员管理</a></li> <li><a href="#">管理员设置</a></li> <li><a href="#">权限组设置</a></li> <li><a href="#">退出系统</a></li> </ul> </li> </ul> </body> </html> <a href="http://js.alixixi.com/">欢迎访问阿里西西网页特效代码站,js.alixixi.com</a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值