一段折叠代码,带记忆功能的

本文介绍了一种使用JavaScript实现的带记忆功能的折叠菜单,该菜单能够通过Cookies记录用户的展开选项,在用户下次访问时自动展示之前打开过的子菜单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script language="JavaScript">
function Show(id){
        var obj
=document.getElementById('c_'+id);
        if(obj.style.display=="none"){
                obj.style.display
="";
                
//将子菜单Id放入Cookies
                var curShow 
= readCookie('curShow');
                if(curShow!='')
                {
                    var arr_curShow 
= curShow.split(',');
                    var found = false;
                    
for(i=0;i<arr_curShow.length-1;i++)
                    {
                        
if(arr_curShow[i].toString()==id) {found=true;}
                    }
                    
if(!found){writeCookie('curShow',curShow+','+id,12)}
                }
                
else {
                    writeCookie(
'curShow',id,12)
                }
                
//将子菜单Id放入Cookies End
        }
else{
                obj.style.display
="none";
                
//将子菜单Id从Cookies中移除
                var curShow 
= readCookie('curShow');
                if(curShow!='')
                {
                    var arr_curShow 
= curShow.split(',');
                    for(i=0;i<arr_curShow.length;i++)
                    {
                        
if(arr_curShow[i].toString()==id) {arr_curShow=arr_curShow.del(i--);}
                    }
                    curShow 
= arr_curShow.join(',');
                    //alert(curShow);
                    writeCookie(
'curShow',curShow,12)
                }
                
//将子菜单Id从Cookies中移除 End
        }

}

function readCookie(name)

{

  var cookieValue 
= "";

  var search 
= name + "=";

  
if(document.cookie.length > 0)

  { 

    offset 
= document.cookie.indexOf(search);

    
if (offset != -1)

    { 

      offset 
+= search.length;

      
end = document.cookie.indexOf(";", offset);

      
if (end == -1end = document.cookie.length;

      cookieValue 
= unescape(document.cookie.substring(offset, end))

    }

  }

  return cookieValue;

}

function writeCookie(name, value, hours)

{

  var expire 
= "";

  
if(hours != null)

  {

    expire 
= new Date((new Date()).getTime() + hours * 3600000);

    expire 
= "; expires=" + expire.toGMTString();

  }

  document.cookie 
= name + "=" + escape(value) + expire;

}
Array.prototype.del=function(n) {  //n表示第几项,从0开始算起。
//prototype为对象原型,注意这里为对象增加自定义方法的方法。
  
if(n<0)  //如果n<0,则不进行任何操作。
    return this;
  
else
    return this.slice(
0,n).concat(this.slice(n+1,this.length));
}


window.onload 
= function a()
{
    var curShow 
= readCookie('curShow');
    var totalShow = 2;    //自己修改一共有多少个二级分类
    
if(curShow!=''&&curShow!=null)
    {
        
for(i=1;i<=totalShow;i++)
        {
            document.getElementById(
'c_'+i).display="none";
        }
        var arr_curShow;
        arr_curShow 
= curShow.split(',');
        for(i=0;i<=arr_curShow.length-1;i++)
        {
            
if(arr_curShow[i]!=''){document.getElementById('c_'+arr_curShow[i]).style.display="";}
        }

    }
}
</script>


<TABLE cellSpacing=0 cellPadding=0 width='100%' border=0>
<TBODY><TR><TD class=catemenu>&nbsp;<A style='CURSOR: pointer' onclick=Show(1)>※ 栏目1</A></TD></TR>
<TBODY id=c_1 style='DISPLAY: none'><TR><TD class=bar2 height=20>&nbsp;┖ <a href=#>下级栏目</a></TD></TR></TBODY>
<TBODY><TR><TD class=catemenu>&nbsp;<A style='CURSOR: pointer' onclick=Show(2)>※ 栏目2</A></TD></TR>
<TBODY id=c_2 style='DISPLAY: none'><TR><TD class=bar2 height=20>&nbsp;┖ <a href='#'>下级栏目</a></TD></TR></TBODY><TBODY></TABLE>
 
做为一个共享主义者,好的东西当然要共享了!这里就共享一个带记忆的折叠菜单吧!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值