在jQuery .slideToggle中添加cookie

时间:2011-10-01 05:03:42

标签: jquery cookies slidetoggle

我的项目中有一个简单的.slideToggle函数,它是:

$(document).ready(function() {
    $('.example5').show().before('<a class="blocks-hide">Show/Hide</a>');
    $('div.blocks-hide').click(function() {
        $('.example5').slideToggle(250);
        $('div.blocks-hide').toggleClass('blocks-show'); 
        return false;
    });
});

现在我想使用cookies plugin这个功能。我希望浏览器记住我之前访问网页时是否单击了“.blocks-hide”链接,并相应地折叠/展开“.example5”。但是,我不知道如何使用cookies插件..请帮帮我们。我是JS的新手。

1 个答案:

答案 0 :(得分:0)

点击事件后(最后)检查 blocks-show 类:

修改:错字 - 将块显示更改为 blocks-show

if($('.blocks-hide').hasClass('blocks-show')){
    $.cookie('toggleState', 'open');   
} else {
    $.cookie('toggleState', 'close');
}

之后,只需在$(document).ready()上检查cookie内容:

if($.cookie('toggleState') == 'open') {
    $('.example5').show();
}

并且,因为我发现你没有配置block-hide / blocks-show出现的时候(当 blocks-show 为真时,没有类别viw,应该是相反),更好的if-else检查将是:

if($('.example5').css('display') != 'none){
    $.cookie('toggleState', 'open');   
} else {
    $.cookie('toggleState', 'close');
}

使用一个检查CSS属性显示。