0

一部のリンクのスタイルを管理するには、「アクティブ」なクラスを動的に指定する必要があります。私はこのコードを持っていますが、動作しません..

<script type="text/javascript" language="javascript">  
function locationPathname(){  

    var path = window.location.pathname.split('/');
    path = path[path.length-1];
    alert(path);
    if (path !== undefined) {
    $('livello2 a[href="/' + path + '"]').addClass('active');
  }
    }
 </script>

およびhtml:

 <div class="livello2">
                 <div class="live">
                     <a href="./Live.php"><img src="live_off.png"></a>
                 </div>
                 <nav class="menu">
                     <ul>
                         <a href="./index.php" ><li>HOME</li></a>
                         <a href="./Concerti.php"><li>CONCERTI</li></a>
                     </ul>
                 </nav>
       </div>

CSS:

.active{background-color:red}

誰か提案がありますか、それを見送りますか?

4

3 に答える 3

1

あなたのJSでこれを行います:

$('.livello2 a[href="/' + path + '"]')

(セレクターの先頭にそのドットを追加したと仮定して)それは(path変数の計算後に)次のようなものに変換されます

$('.livello2 a[href="/Concerti.php"]')

しかし、コード内の実際の href 属性は.(ドット) のように始まります

href="./Concerti.php"

したがって、上記の JS スニペットを次のように更新する必要があります。

$('.livello2 a[href="./' + path + '"]')
于 2012-11-30T11:46:47.153 に答える
0

これを交換

$('livello2 a[href="/' + path + '"]')

これで

$('.livello2 a[href="/' + path + '"]')
于 2012-11-30T11:24:44.187 に答える
0

JSスニペットにドットを追加することに関する@Murali Prasanthからの回答に加えて、JavaScriptブロックが終了の直後に配置されていることを確認することをお勧めします</body>。にある場合、ページはまだ認識していないため、機能しませ.livello2ん。まだロードされていません。そのため、閉じる直前に JS を配置するか、</body>次のように JavaScript コードをラップします。

<script type="text/javascript" language="javascript">  
    $(document).ready(function () {
        function locationPathname(){
        …
        }
    });
</script>
于 2012-11-30T11:31:55.177 に答える