2012-07-19 72 views
4

隨着jQuery UI的手風琴,我刷新頁面級的時候很成功使用cookies記住上次工作狀態但是我不能:jQuery UI Accordion + Cookies - 默認關閉?

  1. 設置爲癱倒在第一次訪問

  2. 有餅乾記住,如果用戶手動開啓倒塌

後,我一直在努力,試圖在「活動」選項創建與條件語句的功能,但沒有成功。

http://jsfiddle.net/77xC9/18/

jQuery(document).ready(function(){ 
     var act = 0; 
     $("#accordion").accordion({ 
      create: function(event, ui) { 
       //get index in cookie on accordion create event 
       if($.cookie('saved_index') != null){ 
        act = parseInt($.cookie('saved_index')); 
       } 
      }, 
      change: function(event, ui) { 
       //set cookie for current index on change event 
       $.cookie('saved_index', null); 
       $.cookie('saved_index', ui.options.active); 
      }, 
      active:parseInt($.cookie('saved_index')), 
      collapsible: true 
     }); 
    }); 

回答

2
jQuery(document).ready(function(){ 
    $("#accordion").accordion({ 
     change: function(event, ui) { 
      $.cookie('saved_index', ui.options.active !== false ? ui.options.active : null); 
     }, 
     active: $.cookie('saved_index') != null ? parseInt($.cookie('saved_index')) : false, 
     collapsible: true 
    }); 
}); 

PS:如果你打開你的頁面爲本地文件谷歌瀏覽器不接受cookies。

+0

解決了問題#1(顯示爲首次訪問時摺疊)。不過,如果用戶摺疊了菜單,我仍然無法記住它。 (確保所有菜單都關閉,然後點擊刷新)。 http://jsfiddle.net/77xC9/25/ – Joe 2012-07-20 02:03:14

+0

我編輯了代碼。 – Researcher 2012-07-20 06:28:19

11

共享代碼在jQuery UI 1.9+中不起作用。以下代碼作品!

jQuery(document).ready(function() { 
    $("#accordion").accordion({ 
     activate: function(event, ui) { 
      $.cookie('saved_index', $("#accordion").accordion("option", "active")); 
     }, 
     active: parseInt($.cookie('saved_index')), 
     collapsible: true 
    }); 
}); 
+1

爲什麼你需要'.cookie('saved_index',null);'line? – 2014-09-19 13:30:14

+0

@FilipSpiridonov事實上,這條線是不需要的,它沒有工作正常。 – Chronozoa 2015-07-31 14:57:54