2012-12-05 66 views
1

我期待有3周不同的div顯示 1 DIV 1日訪問 第二次DIV 2日訪問 第三格3日訪問jquery cookie,cookie的設置值每次訪問?

我以爲我的代碼來做到這一點,但它不是工作,我無法弄清楚我做錯了什麼。

$(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"); 
    } 

}); 

回答

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"); 
    } 
}); 
+0

我覺得這個方法,但我有一個問題的首次訪問,cookieRCCS = 1,第二次訪問,cookieRCCS = 1,第三次訪問,cookieRCCS = 2.我。尋找第二次訪問是2和第三次訪問是3等等任何建議? – Xtian

+0

第二次訪問它應該是2.看看它 –

+0

似乎它應該工作,但仍然得到cookieRCCS = 1的第一個兩次訪問。 – Xtian

0

因爲您正在向cookie寫入字符串,但是使用===檢查類型。只要改變你的==如果比較或做var cookieRCCS = +$.cookie('shownDialog');這將把它轉換爲一個數字(這意味着你必須檢查cookieRCCS == 0而不是null