所以,老实说,我不知道自己做错了什么。我有一个动态主页,它使用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");
});
});
答案 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>