メニューの項目を非表示または表示するかどうかを制御したい ON/OFF チェックボックスのある構成ページがあります。
メニュー セクションの例:
<ul class="accordion">
<li id="whyReplace"><a href="#">header</a>
<ul class="sub-menu">
<li><a href="#"><em>01</em> sub1</a></li>
<li><a href="#"><em>02</em> sub2</a></li>
<li><a href="#"><em>03</em> sub3</a></li>
</ul>
</li>
</ul>
ON/OFF チェックボックスの例:
<div class="control-group">
<div class="controls">
<label class="checkbox">
<div class="switch">
<input data-toggle-id="whyReplace" type="checkbox" checked />
</div>
Why should you replace?
</label>
</div>
</div>
すべてのメニューヘッダーを表示したいので、デフォルトではすべてがチェックされています。ここから、チェックボックスへの変更を localstorage に保存し、ボタンをオフにすることにした場合は、.hide(); を保存します。一致する data-toggle-id を使用した対応するヘッダー。
助けを求めてこのページを見ていましたが、必要なことの半分しかできません。
このプロジェクトでは、Phonegap と xcode を使用して iPad アプリとして公開していることを追加する必要があるため、Safari でテストしています。これらの保存された変数は、他のすべてのページでも永続的である必要があるため、どのボタンがオン/オフに切り替えられたかに基づいてメニューがカスタマイズされます。
次のようなものを使用します。
$(document).ready(function() {
var storage = window.localStorage;
for (var key in storage) {
var menuhead = storage[key];
if ($(menuhead).attr("checked") {
$('li#' + menuhead).show();
} else {
$('li#' + menuhead).hide();
}
}
});
非表示にしたい(オフにした)チェックボックスをlocalstorageに保存し、それらの保存された変数をループしてから.hide();をループする方法を知る必要があります。ID が data-toggle-id と一致するメニュー項目。