2016-05-24 7 views
0

私はnavbarに3つの項目を持つWebページを持っています。製品、パートナー、サポート私はこのnavbarを別々の.htmlファイルに移動しました。 navbar.htmlを開き、load-navbar.jsを使用して呼び出します。私はコードの繰り返しを避けるためにこれを行った。 javascriptを使用して、どのnavbar項目がアクティブであるかを表示できますか?これを行うためにswitch文を使用することは可能ですか?はいの場合、どうすればいいですか?javascriptを使ってnavbarを管理する

navbar.html

<nav class="navbar navbar-default mc-header navbar-static-top"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#mc-collapse-nav"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
     <a href="../index.html"><img id="logo" src="images/logo.svg" alt="Company Logo"></a> 
    </div> 
    <div id="mc-collapse-nav" class="collapse navbar-collapse mc-navbar-spacing"> 
     <ul class="nav navbar-nav navbar-right" > 
      <li><a class="mc-active" href="Items/products.html">Products</a></li> 
      <li><a href="partners.html">Partners</a></li> 
      <li><a href="support.html">Support</a></li> 
     </ul> 
    </div> 
</nav> 

負荷navbar.js

$(function(){ 
    $("#main-nav").load("main-nav.html"); 
}); 

製品におけるMC-アクティブクラスは、その製品を示すために、クラスに追加されます.htmlはアクティブなクラスです。

+0

短い答え:はい、javascriptを使用してアクティブなリンクを強調表示することは可能です。しかし、なぜJavascriptを使ってAJAX経由で何かを読み込むのですか? – Jhecht

+0

@Jhecht私はウェブ開発に比較的新しいですし、Javascriptの理解しかありません。私はあなたがAJAX経由で何かをロードすることによって何を意味するのか分からないのですか? –

+0

'$( '#main-nav')。load()'呼び出しは、一般にAJAXと呼ばれるものです。 Asyncrhonous JavascriptとXMLを意味します。ナビゲーションバーは本当に重要であり、ヘッダーテンプレートからバーを取り除く特別な理由がない限り、それを元に戻すことをおすすめします。 – Jhecht

答えて

0

あなたは変数に現在のURLを保存することができます:

var x = $(location).attr('href'); 

をそしてHREFはURLと一致する場合は、リンクに「アクティブ」クラスを割り当てるか、それはだ場合hrefが、URL内に含まれている方あなたの状況に合っています。もっと自分の状況に合うかもしれません詳細は

jquery active link google

css-tricks link

またはこの検索:このリンクを利用することができます。私はウィンドウhrefとリンクhrefの単純な比較以上のものは必要ないと思います。また、私は間違いなくコメントのアドバイスに従います。

+0

私は$(function(){ $( "#main-nav")を試しました。addClass( 'mc-active'); html "、function(){ $( 'a href^='/'+ location.pathname.split("/")[1] +'"] ') }); }); 私はたぶん、単純に機能してみてくださいナビゲーションバー –

+0

内の別のページへのリンクをクリックしたときに、私が持っているprobemは、ナビゲーションバーの。消えるです:$(「NAV李」)、各(関数(){。 var x = $(location).attr( "href"); var y = this.children( "a")。attr( "href"); if(x.indexOf(y)!= -1){this。 –

+0

リンクがhrefの文字列がURLに含まれているかどうかをチェックしていますが、それがクラス "active"を追加している場合は、 –

関連する問題