jQuery UI のアコーディオンで、開いたアコーディオンの中からページ遷移して、
戻った特に元のアコーディオンを開くようにしたい。
戻るときのURLのパラメータで開くアコーディオンのインデックスを指定することで開くようにする。
(しかし、cookie を使った方がよいのかも。。)
アコーディオンのページサンプル index.html
<div id="accordion">
<h3>Chapter-1</h3>
<div>
..............
<a href="c1.html">c1</a>
</div>
<h3>Chapter-2</h3>
<div>
...............
<a href="c2.html">c2</a>
</div>
<h3>Chapter-3</h3>
<div>
..........
<a href="c3.html">c3</a>
</div>
</div>
accord_open というパラメータで戻った時に開くアコーディオンのインデックスを指定する約束にする。
=====================
c1.html では、
<a href="index.html?accord_open=0">go back</a>
c2.html では、
<a href="index.html?accord_open=1">go back</a>
c3.html では、
<a href="index.html?accord_open=3">go back</a>
=====================
として、、、index.html の jQuery は、、
$("#accordion").accordion({
collapsible: true
, autoHeight: false
, active: false
});
var parameter = location.search.substring(1);
if (parameter != ""){
var ary = decodeURIComponent(parameter).split('&');
$.each(decodeURIComponent(parameter).split('&'), function(index,e){
if (e.split('=')[0]=="accord_open"){
$.globalEval("$('#accordion').accordion({active:" + e.split('=')[1] + "});");
}
});
}