在浏览器中返回时保持jQuery addClass

时间:2016-04-05 14:51:14

标签: javascript jquery cookies addclass toggleclass

我在理解如何将addClass变成cookie时遇到了一些麻烦。我有一个多选框,目前通过添加活动类过滤产品列表,然后仅显示具有指定标记的产品。如果您进行选择,然后单击其中一个产品以查看产品,然后返回,则必须再次重新选择以前选择的选项。以下是用于进行选择的代码。

        tabsBlock.children('.tab').click(function() {
        var tabContentClass = $(this).attr('id') + '-content';
        tabsBlock.children('.active').removeClass('active');
        tabsContentBlock.children('.active').removeClass('active').hide();
        $(this).addClass('active');
        if (tabContentClass.length) {
            tabsContentBlock.children('#' + tabContentClass).addClass('active').show();
        }
        getTags();
    });

感谢所有帮助!

2 个答案:

答案 0 :(得分:0)

对于你描述的情况,我会使用隐藏的输入。见这个例子:

Put checkbox values into hidden input with jQuery

原因是,听起来您只需要存储此特定情况的值。存储在cookie中将要求您管理cookie何时过期,这可能会导致混乱并导致意外行为。

我不太了解localStorage(如评论中所述) - 这也可能是一个可行的选择。

答案 1 :(得分:0)

感谢大家的帮助。我最终使用Astaroth's建议使用本地存储。

$(".tag-group-label").click(function(){
        localStorage.setItem('tagGroupLabelState', 'open');
    });

    $(document).ready(function(){   
        if(localStorage.getItem('tagGroupLabelState') == 'open') {
            $('.tag-group-label').addClass('open').next('.tag-container').slideToggle(400, function(){
                reCalcStickyElement();
            });
        }
    });