私は過去数日間探していましたが、現在直面しているすべての制約を解決する解決策を見つけることができませんでした. どんな助けでも大歓迎です。
jQuery は既にページで使用されています。
現在のシナリオ
複数のパネルを含む既存のページがあります。各パネルには、そのパネル内のレイヤーを表示/非表示するために使用される小さなナビゲーション メニュー (水平の UL リスト) があります。表示/非表示機能は意図したとおりに機能しています。
何が欠けている
クリックすると現在アクティブなメニュー項目が強調表示され、クラスを変更することで以前にアクティブだった項目が非アクティブに戻ります。
制約
- クラス - アクティブ/非アクティブが
<a>
タグに適用されます - 設計は、アクティブ/非アクティブの両方のクラスが一意であるように設計されています。つまり、共通のクラス (.selected など) をハイパーリンクのグループまたはすべてに割り当てることはできません。
- ページにはそのようなユニークなグループが複数あり、それらを個別にターゲットにできるようにする必要があります。
jsフィドル
こちらの jsFiddle の図を参照してください。
HTML コード
私が扱っている HTML の基本ブロックは次のとおりです。
<div id="panel">
<div id="navwrapper">
<ul id="nav">
<li><a href="javascript:showhide('div_1');" class="grp1_1_selected">One</a></li>
<li><a href="javascript:showhide('div_2');" class="grp1_2">Two</a></li>
<li><a href="javascript:showhide('div_3');" class="grp1_3">Three</a></li>
</ul>
</div>
<div id="div_1" name="group1">Some content here for Div 1</div>
<div id="div_2" name="group1">Some content here for Div 2</div>
<div id="div_3" name="group1">Some content here for Div 3</div>
</div>
ページにはそのようなパネルが (それぞれ固有の) 複数あるため、他の同様のソリューションは機能しません。