【发布时间】:2010-10-08 22:23:02
【问题描述】:
我正在尝试让我的菜单系统读取一个 cookie,以便它可以记住菜单状态。一旦记住,菜单将根据 cookie 保持打开/关闭。
在 javascript 中使用警报我能够在点击之前和之后读取 cookie,但遗憾的是我无法正确获取 if 语句以保持打开/关闭隐藏的 html。
非常感谢任何帮助!
代码如下:
HTML
<li class="primary"><a href="user/me">My Profile</a></li>
<div class="menu_content">
<ul>
<li class="secondary"><a href="<?php print base_path() ?>user/my-education">My Education History</a></li>
<li class="secondary"><a href="<?php print base_path() ?>user/my-achievements">My Achievements</a>
<ul>
<li><a href="user/school">School</a></li>
<li><a href="user/my-achievements/year1">Year 1</a></li>
</ul>
</li>
<li class="secondary"><a href="user/my-details">My Account Details</a></li>
<li class="secondary"><a href="user/my-settings">My Account Settings</a></li>
</ul>
</div>
<li class="primary"><a href="compare">Compare</a></li>
<div class="menu_content">
<ul>
<li class="secondary"><a href="user/my-scores">My Scores</a></li>
</ul>
</div>
jQuery
var state = $.cookie("panelState");
$("li.primary").click(function(){
if($.cookie("panelState") == "expanded") {
$(this).next().slideToggle('300');
$(this).removeClass("open");
$(this).cookie("panelState", "collapsed");
alert($.cookie("panelState"));
} else if ($.cookie("panelState") == "collapsed") {
$(this).next().slideToggle('300');
$(this).addClass("open");
$(this).cookie("panelState", "expanded");
alert($.cookie("panelState"));
}
});
【问题讨论】:
-
你可能想看看 jQuery 的
data方法而不是使用 cookie 作为菜单:api.jquery.com/jQuery.data
标签: jquery html cookies menu if-statement