动态navbar jquery addClass()没有做任何事情

时间:2017-05-23 17:20:42

标签: javascript php jquery

所以,老实说,我不知道自己做错了什么。我有一个动态主页,它使用switch语句来更改内容。

我想要做的是让导航栏在{"}开始时获得class="active"""页。我确实搜索了很长时间,但我无法让它工作。

我的主页.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");
         });
    });

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

当您点击链接时,浏览器会加载新页面。因此,您的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>