2012/03/31

jQuery UI Accordion で cookieを使った位置保存

Accorditonのオプションで navigation を trueにセットすれば、表示されている URLから勝手に選択状態(active)を変更してくれるが、それだけでは網羅できないこともある。navigationFilterというオプションでurlの解析などをすればいいんだろうけど、javascriptはとんと分からない。なので、最後の状態を cookieに保存しておくという方法にした。そのメモ。クッキーの管理は jquery.cookie.js で。

$('.selector' ).accordion({
 header: 'h3',
 active: $.cookie('cookiename'),
 change: function(e, ui) { $.cookie('cookiename', $(this).find("h3").index(ui.newHeader[0]), { path: '/' }); }
 });

実際はこの方法だとうまくいかない。cookieが最初は空だから active: の後がブランクになってエラーになる。空の時に 0を入れるようにすればいいんだが、なにせ javascriptはとんと分からない。 $.cookie('cookiename') ? $.cookie('cookiename') : 0 とか書けばいいのかな?
自分は、この部分はphpでやってしまった。

同じ jQuery UIの Tabsは cookieのオプションがあるんだから、accordionでも同じようにサポートしてくれればいいのに..なんて。

0 件のコメント:

色々な画像ファイル形式をhtmlに埋め込む(PHP)

画像をhtmlに埋め込む際、単一の場合は img/src、複数の拡張子を指定すると img/source/srcsetに展開してくれる便利関数。また、単一拡張子のみが指定されている場合は、ブラウザのサポート状況に応じ、avifやwebpの拡張子を持つ同名のファイルがある場合は[a...