0
サブメニューの<li>
に含まれているアンカーのCSSを変更しようとしています。同じページ複数のページにあるSubNavウェブサイト
<ul id="nav">
<li class="subnav current"><a href="page1.html">Page1</a>
<ul>
<li><a href="page1.html#section1a">Page 1 Section A</a></li>
<li><a href="page1.html#section1b">Page 1 Section B</a></li>
<li><a href="page1.html#section1c">Page 1 Section C</a></li>
</ul>
</li>
<li class="subnav"><a href="page2.html">Page2</a>
<ul>
<li><a href="page2.html#section2a">Page 2 Section A</a></li>
<li><a href="page2.html#section2b">Page 2 Section B</a></li>
<li><a href="page2.html#section2c">Page 2 Section C</a></li>
</ul>
</li>
<ul>
各セクションは1060px幅、左フロートを持っており、すべてのセクションがオーバーフローが隠されているのdivコンテナに含まれています:ここではHTMLです。 ここに私が試したスクリプトは次のとおりです。私は同じページに滞在したときに
$(document).ready(function() {
var P=($(".section").position().left)*-1
var N=(P/1060)+1
$("#nav li.current ul li:first-child").find("a").css("color","#e53f33");
$("#nav li.current ul li:nth-child(N)").click(function(){
$(this).siblings().find("a").css("color","#777777");
$(this).find("a").css("color","#e53f33");
});
});
このスクリプトは正常に動作します。しかし、つまり、ページ1にあり、ページ2にあるリンクをクリックすると、別の子をクリックしても、最初の子のCSSが変更されます。私のミスはどこですか?
http://www.theworkingowl.comで起こっていることを確認できます。
こんにちは、Landons、あなたの答えに心より感謝申し上げます。クラスを追加または削除することは、同じページにとどまっているときには本当に良い解決策です。しかし、他のページ、つまりセクション2Bのリンクをクリックすると、そのセクションのリンクアンカーはクラスを追加しません(この新しいページのリンクをクリックしなかったため)。 – Fred
すべて静的なHTMLですか、それともサーバー側のスクリプトで生成していますか?静的な場合は、これを追加してみてください:$( 'a [href =' '+ window.location.pathname +' "] ')。parents(' li ')。addClass(' current ');} );ページの下部に... – landons
これはすべて静的なHTMLです。あなたがアドバイスしたことを試しましたが、うまくいかなかった理由は分かりません。私もこれを試しました: 'var url = window.location.href; addClass( "current");} 'しかし、それはあまりにもうまくいきません... – Fred