次のページの例では、「アクティブ」クラスをアクティブ リンクの親に適用したいと考えています。
http://socalragdolls.com/jquerytest.html
<div id="topnav">
<ul id="mainmenu">
<li class="top" id="home"><a href="/">Home</a></li>
<li class="top"><a href="kittens">Kittens</a>
<ul id="mainmenu">
<li><a href="caring">Caring for a Ragdoll</a></li>
<li><a href="kittens">Current Litter</a></li>
<li><a href="jquerytest.html">Future Litters</a></li>
<li><a href="parents">Parents</a></li>
<li><a href="pricing">Pricing</a></li>
<li><a href="reserving">Reserving a Kitten</a></li>
</ul>
</li>
<li><a href="about">About Us</a>
<ul>
<li><a href="about">Cattery</a></li>
<li><a href="proprietor">Proprietor</a></li>
<li><a href="testimonials">Testimonials</a></li>
</ul>
</li>
<li class="last"><a href="contact.html">Contact Us</a></li>
</ul>
</div>
基本的に、訪問者がページ (jquerytest.html) にいるとき、親 "Kittens" もアクティブにする必要があります。
現在のjQueryは次のとおりです。
<script>
$("#topnav a").each(function() {
if(this.href == window.location || this.href == document.location.protocol + "//" + window.location.hostname + window.location.pathname)
$(this).parent('li').addClass('active');
});
</script>
<script>
$(document).ready(function() {
$('li.active').parent().parent().addClass('active');
});
</script>
ご覧のとおり、これにより、子 .active li のすべての兄弟が親とともに強調表示されますが、これは絶対に望ましくありません。
何か案は?