如何把以下折叠代码改为,点击刷新页面后再展开目录??

<divstyle="width:90px;float:left;margin-right:20px;margin-top:40px;"><divid="main1"st... <div style="width:90px; float:left; margin-right:20px; margin-top:40px;">
<div id="main1" style="color:blue;width:110px; margin-bottom:2px;" onClick="document.all.child1.style.display=(document.all.child1.style.display =='none')?'':'none'" >

+ <a href="javascript:;">分类一</a>
</div>

<div id="child1" style="display:none;margin-left: 15px; margin-bottom:2px; width:110px;">

<a href="/class.asp?id=3">- 目录1</a><br>
<a href="/class.asp?id=4">- 目录2</a><br>
<a href="/class.asp?id=2">- 目录3</a><br>
<a href="/class.asp?id=1">- 目录4</a><br>
</div>

<div id="main2" style="color:blue;width:110px; margin-bottom:2px;" onClick="document.all.child2.style.display=(document.all.child2.style.display =='none')?'':'none'" >

+ <a href="javascript:;">分类二</a>
</div>

<div id="child2" style="display:none;margin-left:15px;margin-bottom:2px;15px; width:110px;">

<a href="/class.asp?id=3">- 目录1</a><br>
<a href="/class.asp?id=4">- 目录2</a><br>
<a href="/class.asp?id=2">- 目录3</a><br>
<a href="/class.asp?id=1">- 目录4</a><br>
</div>

以上CSS代码实现目录的折叠展开,但问题是当点击了分类和分类下的目录链接后,整个页面刷新后原有的折叠状态会丢失回到目录全部收拢状态,如何在点击刷新当前页面class.asp后,保持前一回折叠展开的状态呢??
或者提供能实现此功能的同类直立式分类折叠代码也行,谢谢。。
展开
 我来答
xinyu11290124
推荐于2016-07-06 · TA获得超过281个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:74万
展开全部

直接在你的代码上改,做法是采用js+cookie。

代码如下:

<html>

<body onLoad="checkCookie()">

<div style="width:90px; float:left; margin-right:20px; margin-top:40px;">

    <div id="main1" style="color:blue;width:110px; margin-bottom:2px;" onClick="document.all.child1.style.display=(document.all.child1.style.display =='none')?'':'none';myClick()" >

      

            +   <a  href="javascript:;" >分类一</a>

</div>


<div id="child1" style="display:none;margin-left: 15px; margin-bottom:2px; width:110px;">


<a href="/class.asp?id=3">- 目录1</a><br>

<a href="/class.asp?id=4">- 目录2</a><br>

<a href="/class.asp?id=2">- 目录3</a><br>

<a href="/class.asp?id=1">- 目录4</a><br>

</div>


<div id="main2" style="color:blue;width:110px; margin-bottom:2px;" onClick="document.all.child2.style.display=(document.all.child2.style.display =='none')?'':'none';myClick()" >


+   <a  href="javascript:;" >分类二</a>

</div>


<div id="child2" style="display:none;margin-left:15px;margin-bottom:2px;15px; width:110px;"> 


<a href="/class.asp?id=3">- 目录1</a><br>

<a href="/class.asp?id=4">- 目录2</a><br>

<a href="/class.asp?id=2">- 目录3</a><br>

<a href="/class.asp?id=1">- 目录4</a><br>

</div>


<div id="main3" style="color:blue;width:110px; margin-bottom:2px;" onClick="document.all.child3.style.display=(document.all.child3.style.display =='none')?'':'none';myClick()" >


+   <a  href="javascript:;" >分类三</a>

</div>


<div id="child3"  style="display:none;margin-left:15px;margin-bottom:2px;15px; width:110px;"> 


<a href="/class.asp?id=3">- 目录1</a><br>

<a href="/class.asp?id=4">- 目录2</a><br>

<a href="/class.asp?id=2">- 目录3</a><br>

<a href="/class.asp?id=1">- 目录4</a><br>

</div>

</body>

</html>


<script type="text/javascript">

function getCookie(c_name)

{

if (document.cookie.length>0)

  {

  c_start=document.cookie.indexOf(c_name + "=")

  if (c_start!=-1)

    { 

    c_start=c_start + c_name.length+1 

    c_end=document.cookie.indexOf(";",c_start)

    if (c_end==-1) c_end=document.cookie.length

    return unescape(document.cookie.substring(c_start,c_end))

    } 

  }

return ""

}


function setCookie(c_name,value,expiredays)

{

var exdate=new Date()

exdate.setDate(exdate.getDate()+expiredays)

document.cookie=c_name+ "=" +escape(value)+

((expiredays==null) ? "" : ";expires="+exdate.toGMTString())

}


function checkCookie()

{

var menu=getCookie('menu')

if (menu!=null && menu!=""){

var arr = menu.split(',');

for (var i =0; i < arr.length; i++) {

var tempArr = arr[i].split(':');

if (tempArr.length > 1) {

var curChild = document.getElementById(tempArr[0]);

curChild.style.display = tempArr[1];

}

}

}

}

function myClick() {

    

var child1 = document.getElementById("child1");

var child2 = document.getElementById("child2");

var child3 = document.getElementById("child3");

console.log(child3.style.display);

menu = "child1:" + child1.style.display+ "," + "child2:" + child2.style.display+ "," + "child3:" + child3.style.display;

setCookie('menu',menu,1)

}

</script>

效果图:

ps:采用cookie能实现,但如果用户的浏览器不支持cookie,或者禁用了cookie,那这个方法就不起作用了。

看你的需求和采用的是asp。除了利用js+ cookie,还有别的方案:

1,利用ajax + asp的session + cookie。

2,利用ajax + asp 缓存技术 缓存一个变量。

更多追问追答
追问

追答

代码请看附件。

对于你的问题:

1,在增加分类五,复制分类四(其他分类)的对应部分代码,然后将main4改为main5,child4改为child5(包括myClick('child4')中的)

其他两个问题,你看效果就明白了。

ps:代码写得有点赶,很多地方应该可以写得更灵活。其实如果你用jquery,可以用更少的代码实现现有的效果。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式