2014-02-05 42 views
0

我想保存手風琴的狀態並在頁面刷新後保持它。如何使用localStorage保存手風琴的狀態

到目前爲止,這裏是腳本。

<script> 
    $(document).ready(function() { 
    $('table').accordion({ 
    header: '.category', 
    collapsible: true, 
    active: localStorage.getItem('accordion-active')||false 
    }); 
}); 
    window.onload = function(){ 
    localStorage.setItem('accordion-active',$('table').accordion('option','active')); 
}; 
</script> 

JFIDDLE

但似乎我不能使它工作。有什麼建議麼?

+1

起初,以後你不會設置手風琴狀態,這對你好嗎? –

回答

0

你會做到這一點的儲存在acivate事件當前活動手風琴的指數,然後用它在active選項在頁面加載

$(document).ready(function() { 
    $('table').accordion({ 
     header: '.category', 
     collapsible: true, 
     activate: function(e, ui) { 
      localStorage.setItem('accordion-active', $(this).accordion("option", "active")); 
     }, 
     active: +localStorage.getItem('accordion-active') 
    }); 
}); 

FIDDLE

+0

它在這個例子中工作正常,但我不知道它是如何工作的tbody動態填充?看來,當我嘗試這個代碼。當我點擊第一個手風琴並刷新第二個手風琴時,會複製第一個手風琴的狀態? – user3230425

+0

如果你有多個表或手風琴,你當然必須爲每一個創建一個新的實例,併爲localStorage等新的密鑰? – adeneo

+0

你有這個樣本嗎? – user3230425

0
$(document).ready(function() { 
$('table').accordion({ 
    header: '.category', 
    collapsible: true, 
    activate: function(e, ui) { 
     localStorage.setItem('accordion-active', $(this).accordion("option", "active")); 
    }, 
    active: parseInt(localStorage.getItem('accordion-active')) 
}); 
}); 

使用parseInt函數( localStorage.getItem('accordion-active'))爲活動選項,如果您希望手風琴中的所有表格最初加載爲折​​疊狀態。