2014-09-25 90 views
0

如何在此代碼中添加Cookie以記住刷新後的狀態?jQuery,slideToggle - 添加Cookies以記住狀態

的jQuery:

$("li.FOLDER A").click(function() { 
    $(this).parent().find("UL:first").slideToggle("fast"); 
    if($(this).parent().attr('className') == "FOLDER") return false; 
}); 

HTML:

<ul> 
<li class="FOLDER"><a href="#"> open folder </a> 
    <ul> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 
    </ul> 
</li> 
<li class="FOLDER"><a href="#"> open folder </a> 
    <ul> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 
    </ul> 
</li> 
</ul> 
+0

只是隱藏根據您的cookie變量的元素。 – 2014-09-25 16:56:05

回答

0

也許你可以使用本地存儲,而不是(這是不傳輸到服務器)

localStorage.setItem('isOpen', true); 

var isOpen = localStorage.getItem('isOpen'); 

,但我不很明白以及你的功能如何工作。
也許這樣的事情...

$("li.FOLDER A").click(function() { 
    var isOpen = localStorage.getItem('isOpen'); 
    if(isOpen){ 
     $(this).parent().find("UL:first").slideUp("fast", function(){ 
      localStorage.setItem('isOpen', false); 
     }); 

    } 
    else{ 
     $(this).parent().find("UL:first").slideDown("fast", function(){ 
      localStorage.setItem('isOpen', true); 
     }); 

    } 
    if($(this).parent().attr('className') == "FOLDER") return false; 
}) 
.trigger('click'); 
0

看看這個插件:https://github.com/carhartl/jquery-cookie

您可能需要使用$.slideDown()$.slideUp()這樣你就可以區分是否要打開或關閉元素

當您打開抽屜:

$.cookie('drawer_state', 'open'); 

當你關上抽屜:

$.cookie('drawer_state', 'close'); 

然後讀取抽屜狀態時,你的文檔加載:

$(document).ready(function(){ 
    if($.cookie('drawer_state') == "open"){ 
     $("#drawer").slideUp(); 
    }else{ 
     $("#drawer").slideDown(); 
    } 
}); 

HTML:

<ul> 
<li class="FOLDER"><a href="#"> open folder </a> 
    <ul id="drawer"> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 
    </ul> 
</li> 
</ul>