2012-08-02 51 views
0

我想創建並存儲cookie與jQuery Cookie插件。我想cookie只是一個普通的櫃檯。我需要它是一個cookie,因爲如果頁面刷新,我想保持計數器不變。當某些條件成立時,我想將1添加到cookie值。這看起來很簡單,但我在使用插件時遇到了麻煩。使用cookie作爲計數器?

我創建cookie的是這樣的:

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

的我想要達到一個小例子:

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

當條件是真的,沒有工作,餅乾價值保持在0.我也試過:

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

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

這也沒有奏效 - cookie值保持在0。有關如何完成此任務的任何建議?

回答

3

您需要檢查它是否存在,然後用零更新它。

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

謝謝!我欣賞一步一步的評論,非常有幫助。 – Jon 2012-08-02 18:22:34

+0

它是不同的Firefox和鉻,在我的瀏覽器中你的代碼無法正常工作,你可以附上jsfiddle例子與你的答案我需要立即用js/jquery代碼這個功能。需要你的幫助 – Anup 2013-10-16 07:52:09

+0

@Anup,哦不,你需要立即。我打賭你沒有包含jQuery cookie插件。 – epascarello 2013-10-16 12:48:34

-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。

+0

小心分享爲什麼這是downvoted?它當然準確地回答他的問題(就像接受的答案一樣)。 – idrumgood 2012-08-02 18:43:24

+0

每次頁面加載時,都會將計數器重置爲零。 [我以爲我留下了評論,意識到它正坐在一個標籤中,我從來沒有提交] – epascarello 2012-08-02 19:15:20

+0

這是真的,但這是他的代碼的其他部分的缺陷。問題是關於如何更新cookie值,這是在這裏回答的。我當然同意你的答案是比較正確的,但我認爲這個問題對於所問的問題並不正確。 – idrumgood 2012-08-02 19:23:46