0

我有一个按钮,单击该按钮应删除 cookie,调用从文本框中收集值并将其保存为新 cookie 值的函数。

我遇到的问题是,在单击按钮后,函数正在执行,就好像 cookie 中有一个值一样。

我已经记录了 cookie 的值,它显示为空。为什么我的函数没有发现该值为空?

//when new player is pressed
$('#BtnPlayAsNew').button().click(function () {
    $.cookie('name', null); //delete cookie

    $('#Result').hide();
    getUsername(); //call function 
});

function getUsername() {
    //get cookie 
    var cookie = $.cookie('name');
    //check value of cookie
    if (cookie == null || cookie == "") {
        $('#controls').hide();
        $('#NewUser').show();
        $('#BtnUser').click(function () {
            name=$('#tbUser').val();
            $.cookie('name', name,{path:'/' });
            $('#NewUser').hide();
            $('#controls').show();
        });
    }else{
        $('#NewUser').hide();
        $('#controls').show();
    }
}
4

1 回答 1

1

$.cookie('name', null);不会删除 cookie,它会为其分配字符串"null",您可以检查它是否console.log(cookie == "null");为真。相反,您可以使用 javascript 的 cookie,并将过期日期设置为过去。因此,要设置 cookie null,请改用:

document.cookie = 'name=; expires=Thu, 01 Jan 1970 00:00:00 UTC;';
于 2015-05-07T20:29:23.147 回答