javascript - Jquery Cookie 内存类

标签 javascript jquery html cookies

我有以下代码,我想调整它以记住添加的类,以便它在整个站点中应用。我遇到过 Jquery Cookie:https://github.com/carhartl/jquery-cookie并希望用它来记住应用类。如何保存当前状态?

    $.cookie('elemshow.on');    
var elemhide = $('.hide-menu'),
    elemshow = $('.show-menu, .show-menu2');

    elemhide.on('click', function(e){
        e.preventDefault();

        $('header').addClass('out-active');
        $('.header-foot').addClass('out-active');
        $('#content').addClass('full-width-added');
        setTimeout(function() {
            try {
                reconstructRn();
            } catch(err) {
            }
            window.dispatchEvent(new Event('resize'));
            elemshow.addClass('active');
        }, 300);

    });

    elemshow.on('click', function(e){
        e.preventDefault();

        $('header').removeClass('out-active');
        $('.header-foot').removeClass('out-active');
        $('#content').removeClass('full-width-added');
        elemshow.removeClass('active');
        setTimeout(function() {
            try {
                reconstructRevolution();
            } catch(err) {

            }
        }, 10);

    });

最佳答案

我会像这样调整你的代码:

/* define elemhide and elemshow */
var elemhide = $('.hide-menu'),
    elemshow = $('.show-menu, .show-menu2');

/* click functions */
elemhide.on('click', function(e){

    e.preventDefault();

    /* cookie = 1 week */
    var date = new Date();
    date.setTime(date.getTime() + (1000 * 60 * 60 * 24 * 7));
    $.cookie('menu_cookie', '0', { expires: date, path: '/' });

    /* set classes */
    $('header').addClass('out-active');
    $('.header-foot').addClass('out-active');
    $('#content').addClass('full-width-added');
    setTimeout(function() {
        try {
            reconstructRn();
        } catch(err) {
            // do something
        }
        window.dispatchEvent(new Event('resize'));
        elemshow.addClass('active');
    }, 300);

});

elemshow.on('click', function(e){

    e.preventDefault();

    /* cookie = 1 week */
    var date = new Date();
    date.setTime(date.getTime() + (1000 * 60 * 60 * 24 * 7));
    $.cookie('menu_cookie', '1', { expires: date, path: '/' });

    /* set classes */
    $('header').removeClass('out-active');
    $('.header-foot').removeClass('out-active');
    $('#content').removeClass('full-width-added');
    elemshow.removeClass('active');
    setTimeout(function() {
        try {
            reconstructRevolution();
        } catch(err) {
            // do something
        }
    }, 10);

});

/* check for existing cookie */
if (!$.cookie('menu_cookie') || $.cookie('menu_cookie') == 0) {
    $('.hide-menu').trigger('click');
} else if ($.cookie('menu_cookie') == 1) {
    $('.show-menu').trigger('click');
}

这是一个 fiddle :http://jsfiddle.net/Niffler/B8XBg/我不知道您的 HTML,所以我只使用颜色...

关于javascript - Jquery Cookie 内存类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23872764/

相关文章:

javascript - Jquery 中的 CSS 位置和 if 语句

html - 为什么我的位置绝对不起作用?

javascript - 多行值在html中的div标签内显示在单行中

javascript - 为什么鼠标悬停时 Chart.js 的工具提示出现在错误的位置?

javascript - 设置元素的特定区域,使其可以被拖动

javascript - 如何在页面重新加载后保持复选框切换的 div 的状态?

jquery - 如何将下拉菜单更改为普通链接

Javascript 字符串替换为计算

javascript - 刷新后,angularjs firebase登录范围值不可用

jQuery Mobile 作为 Web CRM