2017-05-23 8 views
-1

私は間違って何をしているのか正直に分かりません。私はコンテンツを変更するにはswitchステートメントを使用して動的なホームページを持っています。ダイナミックnavbar jQuery addClass()何もしない

私がしようとしているのは、 "that"ページにいるときにnavbarをclass="active"にすることです。私は長い間検索しましたが、私はそれを動作させることができませんでした。

マイhomepage.php:

<?php 
include'inc/header.php'; 
include'inc/navbar.php'; 

if (!empty($_GET['page'])) { 
    switch ($_GET['page']) { 
    default; 
    include 'inc/pages/homepage.php'; 
    break; 

    case 'inc/pages/homepage.php': 
    include 'inc/pages/homepage.php'; 
    break; 

    case 'inc/pages/page2.php': 
    include 'inc/pages/page2.php'; 
    break; 
    } 
    }else{ 
    include 'inc/pages/homepage.php'; 
    } 

include 'inc/footer.php'; 

?> 

マイnavbar.phpは、リンクのこの種を持っている:

<nav> 
    <a href="?page=inc/pages/homepage.php">Home</a> 


    <a href="?page=inc/pages/page2.php">Pagina 2</a> 
</nav> 

私は(私はJquery.min.jsをリンクしました)このコードを試してみました:

$(document).ready(function(){ 
     $('nav a').click(function(){ 
      $('nav a').removeClass("active"); 
      $(this).addClass("active"); 
     }); 
    }); 
+0

例えば

? – junkfoodjunkie

+0

$( 'nav a')。addClass( "active"); $(this).addClass( "active")の代わりにこれを使用してください。 –

+0

これは本当に問題ではありません。彼はclick()関数内にあります。$(これ)は、クリックした要素に属します。 – junkfoodjunkie

答えて

0
$(document).on("click", 'nav a', function(){ 
    $('nav a').removeClass("active"); 
    $(this).addClass("active"); 
}); 
0

あなたがリンク上で、あなたの眉をクリックしてくださいserは新しいページを読み込みます。したがって、JavaScript関数は実行されますが、JavaScript関数がまだ実行されなかった新しいページをロードします。

現在のページについてはnavbar.phpをチェックし、それに応じてクラスを追加してください。あなただけの直接PHPでこれをしないのはなぜ

<nav> 
    <a href="/?page=inc/pages/homepage.php" class="<?php if ($_GET['page'] == 'inc/pages/homepage.php') echo " -active"; ?>">Home</a> 
    .... 
</nav> 
関連する問題