0

我正在尝试使用 jQuery Cookie 插件创建和存储 cookie。我想cookie只是一个普通的柜台。我需要它是一个 cookie,因为如果页面被刷新,我想让计数器继续运行。当某些条件为真时,我希望将 1 添加到 cookie 值中。看起来很简单,但我在使用插件时遇到了麻烦。

我创建了这样的cookie:

$(document).ready(function(){
    $.cookie("cookieValue", "0", { expires: 7 , path: '/' }); 
});

我正在努力实现的一个小例子:

if (/*some condition*/) {
    cokieValue++;
}

当条件为真时这不起作用,cookie值保持在0。我也试过:

$(document).ready(function(){
    $.cookie("cookieValue", "0", { expires: 7 , path: '/' });  
    var cookieValue = parseInt($.cookie("cookieValue"));

    if (/*some condition*/) {
        cookieValue++;
    } 
});

这也不起作用 - cookieValue 保持为 0。关于如何完成此操作的任何建议?

4

2 回答 2

2

在将其更新为零之前,您需要检查它是否存在。

if( $.cookie('cookieValue') === null ) { 
    $.cookie( 'cookieValue', '0',  { expires: 7, path: '/' } );
}

您需要在更新后保存该值。

$.cookie("cookieValue", cookieValue, { expires: 7 , path: '/' })

所以最终的代码看起来像

$(function(){  //shortcut for document.ready
    var cookieVal = $.cookie("cookieValue");  //grab the cookie
    if( cookieVal === null ) {   //see if it is null
        $.cookie( 'cookieValue', '0',  { expires: 7, path: '/' } );  //set default value
        cookieVal = 0;  //set the value to zero
    }
    var cookieValue = parseInt(cookieVal,10);  //convert it to number

    if (/*some condition*/) {
        cookieValue++;  //increment the value
        $.cookie("cookieValue", cookieValue, { expires: 7 , path: '/' }); //save new value
    } 
});
于 2012-08-02T16:29:51.560 回答
-1
$(document).ready(function(){
    $.cookie("cookieValue", "0", { expires: 7 , path: '/' });  
    var cookieValue = parseInt($.cookie("cookieValue"));

    if (/*some condition*/) {
        cookieValue++;
        $.cookie("cookieValue", cookieValue, { expires: 7 , path: '/' });
    } 
});

必须使用新值设置 cookie。

于 2012-08-02T16:30:47.390 回答