2015-02-10 93 views
1

我知道類似的問題,我已經看過,但答案還沒有爲我工作。如何使用jquery cookie插件保存toggleClass方法的狀態

所以我試圖保存JavaScript toggleClass方法的狀態,以便當用戶刷新頁面時,它會加載保存的狀態。目前它正如通常那樣恢復到原始狀態。我試圖做到這一點使用jQuery插件的cookie https://github.com/carhartl/jquery-cookie

我的代碼,隨後

$(document).ready(function(){ 
    $(".steps").click(function(){ 
    $(this).toggleClass("selected"); 
    $.cookie("selected", $(this).hasClass("selected")); 
    }); 
});  

沒有什麼不妥,沒有顯示在控制檯,所以我難倒了答案。

+0

那麼該代碼設置cookie,你在哪裏讀回和切換? – 2015-02-10 12:42:02

+0

我不這樣做,我嘗試過放置$ .cookie(「selected」);直接後,但它仍然沒有保存。我在正確的地方閱讀曲奇嗎? – boombap123 2015-02-10 12:48:56

回答

1

確保設置了布爾值。你存儲一個字符串,但需要一個布爾

JSFIDDLE

$(document).ready(function(){ 
    var sel = $.cookie("selected"); // get the cookie 
    sel = sel=="true"; // convert to boolean - null is false, "false" is false 
    $(".steps").toggleClass("selected",sel); // initial 
    $(".steps").on("click",function() { 
    var $this = $(this); 
    sel = !sel; // toggle 
    $this.toggleClass("selected",sel); // toggles 
    $.cookie("selected", sel,{ expires: 7, path: '/' }); 
    }); 
}); 
+0

有趣的是,你是對的,它正好相反,它似乎在加載頁面時自動切換到「選定」狀態。 – boombap123 2015-02-10 12:56:57

+0

查看更改。 .... – mplungjan 2015-02-10 13:02:44

+0

似乎仍然做同樣的事情 – boombap123 2015-02-10 13:29:30

0
$(document).ready(function(){ 
if($.cookie("selected")){ 
    $(".steps").addClass("selected"); 
} 

    $(".steps").click(function(){ 
    $(this).toggleClass("selected"); 
    $.cookie("selected", $(this).hasClass("selected")); 
    }); 
}); 
+0

這似乎也會在加載頁面時自動將狀態切換爲「選定」狀態。狀態更改也不存儲。 – boombap123 2015-02-10 13:02:30