页面重新加载后保存菜单状态

时间:2015-08-28 22:20:32

标签: javascript jquery html angularjs

我有树视图菜单,我想在页面重新加载后记住它的状态。要使用angularJS函数$ state.reload()重新加载页面I;

我不知道我应该使用Jquery收集有关当前菜单状态的cookie并保存它,或者可能有办法使用angular收集有关当前状态的数据。

任何想法和建议都将受到高度赞赏。

这是我的HTML

<nav class="side-nav" id="menu">
<ul>
    <li class="side-nav-item">
        <a href="/index">
            <i class="nav-item-icon icon ion-ios7-navigate-outline"></i>
            Main page
        </a>
    </li>
    <li class="side-nav-item collapsable">
        <a href="javascript:void(0);">
            <i class="nav-item-icon icon icon ion-chevron-right"></i>
            1. subitem
        </a>
        <ul style="display:none;">
            <li class="side-nav-item">
                <a ui-sref=".countiesandtowns">
                    <i class="nav-item-icon icon ion-clipboard"></i>
                    2. subitem
                </a>
            </li>
        </ul>
    </li>
</ul>

这是JQuery我正在使用

$(function () {
$(document).ready(function () {
    $("#menu").treeview({
        toggle: function() {
            var element = $(this).find(">a>i");

            if (element) {
                var rightElement = element.hasClass("ion-chevron-right");
                var downElement = element.hasClass("ion-chevron-down");

                element.removeClass("ion-chevron-right");
                element.removeClass("ion-chevron-down");

                if (rightElement)
                    element.addClass("ion-chevron-down");
                if (downElement)
                    element.addClass("ion-chevron-right");
            }
        }
    });
});});

2 个答案:

答案 0 :(得分:0)

听起来像你想要的饼干。看看这个W3C spec on cookies,不需要jQuery!

保存cookie后,在重新加载页面后,只需检查cookie的状态并根据该页面显示菜单

答案 1 :(得分:0)

我认为您最好的选择是考虑将window.localStorage与Cookie回退结合使用。事实上,如果您使用的是angular,您甚至可以考虑使用angular-local-storagehere

angular-local-storage为您提供了Cookie回退,但这并不难实现,只需要检查window.localStorage是否已定义。

希望能帮到你!