【问题标题】:not able to save the state in cookie无法将状态保存在 cookie 中
【发布时间】:2012-08-24 12:56:08
【问题描述】:

我有一个简单的用例,当用户选择特定选项卡时,我会更改 li 元素的背景颜色。我想要的是即使刷新页面也能保持背景颜色的状态。

我一直在尝试通过 jquery cookie https://github.com/carhartl/jquery-cookie 执行此操作,但它似乎不起作用。

我正在使用 cofeescript 执行此操作,这是我的代码:-

 jQuery ->
    $('.left-vertical-menu-elements li a').click ->
        $.cookie('lastclicked', @id)
        $(@).closest('li').addClass('active').siblings().removeClass('active')

        if($.cookie('lastclicked', @id))
            $(@).closest('li'.addClass('active'))
            $.cookie('lastclicked', null)

HTML :-

%ul
            %li{:class => "active"}=link_to "Games Playing", "#",:id =>"playing-link "
            %li=link_to "Games Played", "#",:id =>"played-link"
            %li=link_to "Followers", "#",:id =>"followers-link"
            %li=link_to "Following", "#",:id =>"following-link"
            %li=link_to "References", "#",:id =>"refrences-link"
            %li=link_to "Notifications", "#",:id =>"notifications-link"

我添加了alert($.cookie('lastclicked')) 以查看cookie 是否存储了最后点击元素的ID,这似乎给出了正确的结果。`

我已将jquery.cookie.js 文件包含在我的应用程序中,但它似乎不起作用。

【问题讨论】:

    标签: jquery coffeescript jquery-cookie


    【解决方案1】:

    您的代码有一些错误。

    1. 在 CoffeeScript 中的 if 语句上使用大括号是一种语法错误。
    2. if('lastclicked') 毫无意义,字符串总是正确的。
    3. $.cookie('lastclicked') 返回一个字符串和字符串,你不能把字符串当作 jQuery 对象。

    我想你想要更多这样的东西:

    jQuery ->
        $('.left-vertical-menu-elements li a').click ->
            $.cookie('lastclicked', @id)
            $(@).closest('li').addClass('active').siblings().removeClass('active')
    

    我还将您的 this 切换为 @,因为 @ 在 CoffeeScript 中更为惯用。

    【讨论】:

    • 感谢指出错误,但刷新页面后似乎不起作用
    • 如何在页面刷新时保持状态?我已根据您的观点进行了更改,但似乎并没有持续
    • @DevR:你试过给它一个expires 选项吗? github.com/carhartl/jquery-cookie#usage
    • 我希望它在单击另一个链接后立即过期,因为这些链接会将您带到另一个保留侧边栏的页面,因此我不想对 expires 值进行硬编码。我会更新我现在使用的jquery代码,请看一下
    • @DevR: $.cookie('lastclicked', @id) 设置 cookie,$.cookie('lastclicked') 获取 cookie。您可以在加载这些其他页面时清除 cookie,或者您甚至不需要 cookie,也许 window.lastclicked 会这样做。
    猜你喜欢
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 2011-12-30
    • 2016-06-23
    • 2011-10-26
    相关资源
    最近更新 更多