【问题标题】:jQuery cookie gets immediately unset - but only the first time it's setjQuery cookie 立即取消设置 - 但只是第一次设置
【发布时间】:2011-06-01 06:44:32
【问题描述】:

为什么下面的方法只能在第一次之后才起作用?单击菜单项后,只有一个空 cookie,但每次之后它都可以正常工作......

我正在使用 jquery cookies 插件。

$j(document).ready(function(){

$j('#menu-main-nav-menu li').each(function(index) {
    $j(this).data('sc-menu-item', index);
    })

currentPage = $j.cookie('currentPage');
        // do some stuff with the cookie value here

$j('#menu-main-nav-menu li').click(function() {
    $j.cookie('currentPage', $j(this).data('sc-menu-item'))
});

});

非常感谢您的帮助 - 我被困住了!

【问题讨论】:

  • 打印这个值,在你设置cookie之前,使用console.log($j(this).data('sc-menu-item'));
  • 好的 - 我想通了。人为错误。 js 很好,但是我的域正在重定向,这导致 cookie 一开始就设置在错误的域中。感谢您的帮助。

标签: jquery jquery-plugins cookies


【解决方案1】:

纳什,

我认为cookie插件没有问题,请按照以下方式调试

在设置之前打印值

use console.log($j(this).data('sc-menu-item')); or alert//

该值可能为 null..

上面的调试应该可以解决问题

【讨论】:

  • 感谢科比。不幸的是,这给出了正确的响应!即菜单项数据 is 被正确读取,然后在 cookie 中正确设置 - 它只是在下一页加载时未设置。更进一步,我在此之后(已设置)和(文档)之前立即警告()了 cookie 值。准备就绪 - 在下一页触发时,它已经为空。
【解决方案2】:

event.preventDefault() 放入链接点击事件中,然后设置cookie,然后转发链接,看看是否有区别。

【讨论】:

  • 应该如此,但它设置了cookie吗?如果是这样,那么它按预期工作,您可以通过执行 javascript 重定向再次使链接功能。
  • 啊,我明白你所说的“前进”是什么意思。我现在已经尝试过了——它确实正确地设置了 cookie(就像一开始发生的那样——见上面我对科比的回答)。但是,它在页面加载时仍未设置。
  • fiddle.jshell.net/niklasvh/tJrGa/show/light 它至少是为我设置的,即使在页面加载后也是如此。
  • 这似乎确实有效,感谢您的改进。我想肯定有一些外部影响,但我不知道那可能是什么?
【解决方案3】:

原来 js 没问题。我将 cookie 设置在错误的域中……我是新手……

【讨论】:

    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 2013-12-27
    相关资源
    最近更新 更多