私はブートストラップアコーディオンで作業しています。私はアコーデオンの状態を保存できるようにしたい。私はlocalstorageを使うことにしました。ユーザーがアコーディオンを閉じて開いていない場合は、localstorageをクリアします。私はこれをすべて終えました。私の質問は、ユーザーがリンクをクリックしてアコーディオンを開閉するときに、私はクラス「折り畳まれた」のチェックをしています。それがクリックされたとき、私はそれがクラス 'collapsed'を持っていると仮定します。私はlocalstorageをクリアすることができます。しかし何らかの理由でその反対です。私がそれを否定するならば、すべてがうまくいく。私は何を見ていないのですか? HTMLのJqueryクリックイベント
$('.accordion-right').click(function() {
if (!$(this).hasClass('collapsed')) {
localStorage.clear();
} else {
localStorage.setItem('collapseItem', $(this).attr('href'));
}
});
var collapseItem = localStorage.getItem('collapseItem');
if (collapseItem) {
if (<%= is_patient? %>) {
$('#record').collapse('show');
} else {
$(collapseItem).collapse('show');
}
}
相続人スニペット
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" class="accordion-right" href="#history"><span class="glyphicon glyphicon-th">
</span>History</a>
</h4>
</div>
<div id="history" class="panel-collapse collapse">
<div class="panel-body">
<ul>
<%= nav_search_sidebar %>
</ul>
</div>
</div>
</div>
編集:スペル明確にするために
、ブートストラップイベントは、コードの実行時に動的に追加されたクラスの崩壊」を削除し発射。