2012-01-04 145 views
0

我想讓它看看cookie是否存在,如果不褪色。然後,如果用戶單擊關閉按鈕淡出。我究竟做錯了什麼?jquery cookie讀取並設置

jQuery的

$(function() { 
    if ($.cookie("demoCookie") == null) { 
     $("#headerFactInfo").fadeIn(); 
    }; 

    $("#headerFactInfoClose").click(function() { 
     $("#headerFactInfo").fadeOut(); 
     $.cookie('demoCookie', '1', { expires: 7, path: '/' }); 
    }); 
}); 

的Html

<div id="headerFactInfo">The Great Add <a href="" id="headerFactInfoClose" >Close</a></div> 
+0

什麼問題?發生了什麼或者*不是*發生了什麼? – 2012-01-04 05:37:58

+0

非它是工作,它不會設置cookie,它不會淡入,並且據我所知它不會讀取cookie。 – Jacinto 2012-01-04 05:41:45

+0

你的JS控制檯中是否有錯誤信息?也許這是顯而易見的,但以防萬一:你是否記得爲cookie插件包含JS文件(它不是jQuery的核心部分)? – nnnnnn 2012-01-04 05:56:42

回答

1

你的代碼似乎很好地工作:http://jsfiddle.net/wPP6Y/

我只取得了2修改:

CSS

/* It's hard to tell whether it's fading in 
* or not if it's always visible 
*/ 
#headerFactInfo { 
    display: none; 
} 

JS

$("#headerFactInfoClose").click(function() { 
    $("#headerFactInfo").fadeOut(); 
    $.cookie('demoCookie', '1', { expires: 7, path: '/' }); 

    return false; // Prevent the link to actually follow the href 
}); 

使用Firebug爲Firefox或Chrome的developer tools,或者你喜歡的瀏覽器相當於玩的餅乾。

+0

謝謝,我忘了把返回false; – Jacinto 2012-01-04 05:58:17

0

如果你的意思是,cookie檢查沒有再工作,請嘗試:

 

$(function() { 
    var Cooki = $.cookie('demoCookie'); 

    if (Cooki == null) { 
     $("#headerFactInfo").fadeIn(); 
    } 

    $("#headerFactInfoClose").click(function() { 
     $("#headerFactInfo").fadeOut(); 
     $.cookie('demoCookie', '1', { expires: 7, path: '/' }); 
    }); 
}); 

 
+0

我很好奇爲什麼你認爲在比較之前將函數返回存儲在一個變量中會有所作爲? (或者你的代碼中有沒有其他的變化,我沒有看到?) – nnnnnn 2012-01-04 05:51:46

+0

截至目前爲止,它不起作用,它不會淡入,它不會創建cookie,並且據我所知它不會閱讀是否有一個cookie,但這可能只是因爲我不能創建一個cookie。所以我不知道我做錯了什麼。 – Jacinto 2012-01-04 05:53:14