ユーザーがリスト内の子要素をクリックした場合、アクティブなクラスを親要素と子要素の両方に追加する必要があります。私のhtmlは次のとおりです:-
<ul class="tabs">
<li class="accordion"><a href="#tab1">Bar</a>
<ul class="sub">
<li>lorem/li>
<li>ipsum</li>
<li>Lorem Ipsum</li>
<li>Dolor Sit Amet</li>
</ul>
</li>
以下のjqueryコードを使用して、アクティブなクラスを親要素と子要素の両方に追加していますが、エラーが発生しています:-
$("ul.tabs li").click(function() {
$("ul.tabs li").removeClass("active").find(".sub li").removeClass("active");
$(this).addClass("active").find(".sub li").addClass("active");
});
次に、CSS でアクティブなクラスのスタイルを設定しました。例を言う
.active {background:#EFEFEF;}
クリックされた (this) 子要素のみにアクティブなクラスが適用され、li 子要素全体には適用されません。ここで、子の李 (たとえば lorem) とともに、親の李 (バー) も強調表示されます。選択された子要素とその親要素の両方が異なる css スタイルを持つアクティブなクラスを持つツリー アコーディオン メニューのようなものと考えてください。