1

我希望显示 3 个不同的 div 第一次访问时显示 1 个 div 第二次访问时显示第二个 div 第三次访问时显示第三个 div

我以为我有代码可以实现这一点,但它不起作用,我无法弄清楚我做错了什么。

$(document).ready(function() { 

    var cookieRCCS = $.cookie('shownDialog');

    console.log(cookieRCCS);

     // Check if the cookie exists.
    if ( cookieRCCS === null ) {
        console.log("1st if statement " + cookieRCCS);
        $("#hellopanel1").show();

        // set the cookie to value 1
        $.cookie('shownDialog', '1', {expires: 7});

    } 
    else if ( cookieRCCS === 1 ) {
        console.log("2nd if statement " + cookieRCCS);      
        $("#hellopanel2").show();

        // If the cookie exists, take the value
        cookie_value = $.cookie('shownDialog');

        // Convert the value to an int to make sure
        cookie_value = parseInt(cookie_value);

        // Add 1 to the cookie_value
        cookie_value++;

         // Save the incremented value to the cookie
        $.cookie('shownDialog', cookie_value, {expires: 7});

    }
    else if ( cookieRCCS === 2){
        console.log("3rd if statement " + cookieRCCS);

        $("#hellopanel3").show();

        cookie_value = $.cookie('shownDialog');

        cookie_value = parseInt(cookie_value);

        cookie_value++;

        $.cookie('shownDialog', cookie_value, {expires: 7});
    }

    else{
        console.log("4th Time Here");
    }

});
4

2 回答 2

1

这将通过一个简单而优雅的 case 语句以级联方式正确触发代码片段来解决您的问题:

$(document).ready(function() { 
    var cookieRCCS = (+$.cookie('shownDialog')) + 1;
    $.cookie('shownDialog', cookieRCCS,{expires: 7});

    console.log(cookieRCCS);

    switch (cookieRCCS) {
        case 1:
            console.log("1st if statement " + cookieRCCS);
            $("#hellopanel1").show();
            break;

        case 2:
            console.log("2nd if statement " + cookieRCCS);      
            $("#hellopanel2").show();
            break;

        case 3:
            console.log("3rd if statement " + cookieRCCS);
            $("#hellopanel3").show();
            break;

        default:
            console.log("4th+ Time Here");
    }
});
于 2012-12-05T22:33:08.490 回答
0

因为您正在向 cookie 写入字符串,但使用 === 检查类型。只需将您的 if 比较更改为 == 或var cookieRCCS = +$.cookie('shownDialog');将其转换为数字(这意味着您必须检查 cookieRCCS == 0 而不是 null

于 2012-12-05T22:32:25.727 回答