jQuery cookie会立即取消设置,但只有在第一次设置时才取消设置

jQuery cookie会立即取消设置,但只有在第一次设置时才取消设置,jquery,jquery-plugins,cookies,Jquery,Jquery Plugins,Cookies,为什么只有在第一次之后,下面的方法才能起作用?点击菜单项后,一个空cookie就足够了,但每次点击之后,它都能完美地工作 我正在使用jquerycookies插件 $j(document).ready(function(){ $j('#menu-main-nav-menu li').each(function(index) { $j(this).data('sc-menu-item', index); }) currentPage = $j.cookie('currentPa

为什么只有在第一次之后,下面的方法才能起作用?点击菜单项后,一个空cookie就足够了,但每次点击之后,它都能完美地工作

我正在使用jquerycookies插件

$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插件有什么问题,请按照以下方法进行调试

在设置之前打印该值

use console.log($j(this).data('sc-menu-item')); or alert//
该值可能为null


上面的调试应该解决这个问题

将event.preventDefault放入link click事件中,然后设置cookie,然后使用链接向前移动,看看这是否会产生影响。

结果是js没有问题。我在错误的域中设置了cookie。。。我是新手…

打印此值,在设置cookie之前,请使用console.log$jthis.data'sc-menu-item';好吧,我知道了。人为错误。js很好,但我的域正在重定向,这导致cookie被设置在错误的域中。谢谢你的帮助,谢谢科比。不幸的是,这给出了正确的回答!ie菜单项数据正在被正确读取,然后在cookie中正确设置-它只是在下一页加载时被取消设置。更进一步说,我在设置cookie值之后以及document.ready之前立即通知cookie值-在下一页激发时,它已经为null。它应该这样做,但它设置了cookie吗?如果它这样做了,那么它就按预期工作了,您可以通过执行javascript重定向来再次实现链接功能。啊,我明白您所说的“向前”是什么意思了。我现在已经试过了——它确实像一开始那样正确地设置了曲奇——见我对科比的回答,上面。但是,它在页面加载时仍处于未设置状态。它至少为我设置好了,即使在页面加载之后也是如此。这看起来确实有效,谢谢你的支持。我想一定有一些外部影响,但我不知道那可能是什么?