关于用cookies保存菜单CSS状态求助!

even0220 2012-12-02 03:23:03

<ul id="main-nav">
<!-- Accordion Menu -->
<li><a href="#" class="nav-top-item">一般設定 </a>
<ul>
<li><a href="#" >用戶管理</a></li>
<li><a href="#" >角色管理</a></li>
<li><a href="#" >菜單管理</a></li>
</ul>
</li>
<li><a href="#" class="nav-top-item current">系統管理 </a>
<ul>
<li><a class="current" href="#">用戶管理</a></li>
<li><a href="#" >角色管理</a></li>
<li><a href="#" >菜單管理</a></li>
</ul>
</li>
</ul>


1级菜单被选中的样式是:class="nav-top-item current"
1级菜单未选中的样式是:class="nav-top-item"

2级菜单被选中的样式是:class="current"
2级菜单未选中的样式是:不加样式

2级菜单被onlick才会修改样式。

如果需要对标签加上ID也可以。

$("#main-nav li ul li a").click( // 当二级菜单被单击时
function () {
$("#main-nav li a.current").removeClass('current');//删除一级菜单的选中样式
$(this).parent().parent().parent().find("a").addClass('current');//给当前二级菜单上的一级菜单加上选中样式
$("#main-nav li ul li a").removeClass('current');//删除二级菜单的选中样式
this.className="current";//给当前二级菜单添加选中样式
}
);


求2级菜单被onclik后怎么把菜单样式保存到cookies!

希望能贴上代码!非常感谢!
...全文
181 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2012-12-03
  • 打赏
  • 举报
回复
看你贴出来的示例中并没有URL跳转呀?? 1:如果你click后要跳转去别的页面,然后需要在那个页面也能够初始化选中页面对应的菜单名的话。则将当前页面的url与菜单中的href做对比,然后设置 2:按你说的cookie的思路:如果能加上ID这还有什么问题吗?直接保存好id,然后初始化 初始化时:$('#'+id).trigger('click');就可以触发它的点击事件,使得你说的那些"因为一级,二级菜单被单击还有jquery的一些特效"可以被正常执行了 PS:就你现在贴出来的这个手风琴的菜单代码,没人会认为它有需要用cookie去保存状态的必要。如果有页面跳转应该在代码中表现出来。或者稍微描述一下你的应用场景也好很多
  • 打赏
  • 举报
回复
一般是没有什么必要用COOKIE存储这些信息的. 很多事不是能不能做,而是应不应做.
even0220 2012-12-02
  • 打赏
  • 举报
回复
哎,还是自己搞定了。 ~~来点人吧~ 送分算了。
张运领 2012-12-02
  • 打赏
  • 举报
回复
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(){
username=getCookie('username')
if (username!=null && username!="")
  {alert('Welcome again '+username+'!')}
else 
  {
  username=prompt('Please enter your name:',"")
  if (username!=null && username!="")
    {
    setCookie('username',username,365)
    }
  }
}
document.onclick = function(){
	setCookie("aaaa",111,123);//第三个参数应该是有效期天数,很少用,不确定。
	var aaa = getCookie("aaaa");
	alert(aaa);
}
你这个在W3C上面的cookie上看下吧,代码大概是这样用的。不过很少用带有效期的,所以不能确定有效期的设置这样对不。
even0220 2012-12-02
  • 打赏
  • 举报
回复
引用 1 楼 zyl_lyr1019 的回复:
CSS code??123456789101112 li li a:hover{ color:red; } li a:hover{ color:green;}li a:active{ color:yellow;}li li a:active{ color:blue;} 是要这样的效果吗?这个试试用伪类解决 用cookie就有些麻烦了。 而……
因为一级,二级菜单被单击还有jquery的一些特效,所以我想的还是只能用cookies。 样式的变化已经没问题,就是不能保存状态。
张运领 2012-12-02
  • 打赏
  • 举报
回复
 li li a:hover{
	color:red;
 }
 li a:hover{
	color:green;
}
li a:active{
	color:yellow;
}
li li a:active{
	color:blue;
}
是要这样的效果吗?这个试试用伪类解决 用cookie就有些麻烦了。 而且伪类也可以多个叠加 li li a:visted:hover{} 这样就表示被访问过的,再出现鼠标悬浮时的效果,该一下相应的内容试试能不能达到你要求的效果。

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧