2014-03-31 102 views
0

您好我使用在這方面的jQuery插件的cookie:jQuery的餅乾在一個網站上主動

$(document).ready(function(){ 
    $('a.close').click(function(){ 
    var user = $('div.popup div.user_information').html(); 

    $.cookie('the_cookie', user, {expires: "7",path: "/", domain: "domain.com"}); 
    message = $.cookie('the_cookie'); 

    $('div.last_seen').html(message); 
    }); 
}); 

當我點擊了「a。關閉」 cookie的正常工作和「div的HTML。 user_information「保存在cookie中並顯示在html元素」div.last_seen「中。

當前的URL是:

domain.com/test/index.php#close

但是,當我刷新到這個網站:

domain.com/test/index.php

看來cookie的會話結束,所以 「div.last_seen」 的內容disappear'也是如此。

有人知道爲什麼嗎?

問候和感謝!

與此代碼:

$(document).ready(function(){ 
    $('a.close').click(function(){ 
     var user = $('div.popup div.user').html(); 
     $.cookie('the_cookie', user, {expires: 7, path: "/", domain: "domain.com"}); 
     var message = $.cookie('the_cookie'); 
     $('div.last_seen').html(message); 
    }); 
    var message = $.cookie('the_cookie'); 
    $('div.last_seen').html(message); 
}); 
+0

您想要cookie何時到期? – pj013

回答

0

編輯:我錯過了一個非常關鍵的一點;問題在於事實上,在加載DOM時,您實際上並未加載cookie並更改HTML,只能在單擊該按鈕後執行此操作。嘗試複製這段代碼外將其放置你的.click()功能:

message = $.cookie('the_cookie'); 

$('div.last_seen').html(message); 

此外...

看起來你對expires屬性值是一個字符串,而不是像API整數建議它應該是。嘗試刪除周圍的7你012​​值的引號,以獲得:

$.cookie('the_cookie', user, {expires: 7, path: "/"}); 

注:沒有理由設置的選項domain值,如果域名是一樣的創建cookie的地方,如在本例。 (see this link

編輯2:爲了迴應詢問關於存儲多個值的評論,只存儲JavaScript對象而不是String。嘗試是這樣的:

var myCookie = {}; 
myCookie['user'] = $('div.popup div.user_information').html(); 
myCookie['otherValue'] = "some other value..."; 

$.cookie('the_cookie', myCookie, {expires: 7,path: "/"}); 

然後從你的cookie的訪問這些值,做這樣的事情:

var myCookie = $.cookie('the_cookie'); 
var message = myCookie.user; // or you could use myCookie['user'] 
var otherValue = myCookie.otherValue; // likewise, myCookie['otherValue'] is ok 

$('div.last_seen').html(message); 
+0

當彈出窗口關閉時應該保存用戶信息,那麼如何將Cookie粘貼到點擊事件之外? – user3297073

+0

保持您的點擊事件代碼相同。你說當你刷新page_時,cookie的信息不會被加載。這是因爲我提供的兩行代碼需要在點擊事件之外(當DOM被加載並準備就緒時,也就是AKA),因此可以在頁面加載時更新該值。 –

+0

確定但是這個src:「domain.com/test/index。php#close「與」domain.com/test/index.php「不一樣,好吧,我應該怎麼做域名,當cookie應該在域名的每個站點上工作?問候 – user3297073

0

只是因爲cookie在頁面加載後不叫。它只是保存div的內容,但在頁面刷新時不會調用它。

<pre><code> 
    var cookie = $.cookie('the_cookie'); 
</code></pre> 
+0

我應該在開始時在html中添加這個片段嗎? – user3297073

+0

在jQuery定義中:$(document).ready(function(){就像點擊事件一樣。 – system7