2012-11-20 45 views
2

我仍然很新的這所以請多多包涵。我有一個函數在點擊事件上添加了一個類,這工作正常。但我也想點擊的功能,可以保存爲這樣當用戶下次訪問該網站這些類仍然存在/重新應用的cookie。我爲此使用jquery.cookie。我的代碼如下。jQuery的Cookie的功能

$(".bblue").click(function bblue() { 
    $("dl").addClass("bbluebg"); 
    $("dd .button").addClass("buttonb"); 
    $('.button img').attr('src',function(i,e){return e.replace("White","DBlue");}); 
    $.cookie("color", function bblue(){} , { expires: null, path: '/' }); 
}); 

當我打電話$.cookie('color');是回報function bblue(){}但它不運行在頁面加載時旁邊的功能。

回答

5

我假設你想存儲的偏好,並採取行動以對。試試這樣的:

// Event-independent color change function 
var bblue = function() { 
    $("dl").addClass("bbluebg"); 
    $("dd .button").addClass("buttonb"); 
    $('.button img').attr('src', $('.button img').replace("White","DBlue")); 
} 

// Click action 
$(".bblue").click(function() { 
    // Change the color 
    bblue(); 
    // Store the preference 
    $.cookie("color", "blue" , { expires: null, path: '/' }); 
}); 

// On page load 
$(document).load(function() { 
    // If they chose blue before, change the color 
    if ($.cookie("color") == "blue") bblue(); 
});  
+0

非常感謝你,這工作得很好。 – dev

1

,因爲用戶沒有點擊任何東西時重新加載頁面的功能不會被再次運行。您的功能僅在有人點擊.bblue元素時運行。

你需要得到cookie的值,並設置上,而不是文件準備好適當的類。課程不會堅持,你必須重新申請。你想使用...

$(function() { 
    var color = $.cookie("color"); 

    // Set classes according to color here 
}); 

這將執行並設置頁面加載後的所有類。