最初我有一个bootstrap导航栏,我将导航栏代码硬编码到我的每个html文件中。我设置用户当前正在手动查看的任何页面的选项卡的活动类,如下所示:
<ul class="nav navbar-nav">
<li class="active"><a href="homepage.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="map.html">View Map</a></li>
<li><a href="index.html">Submit Document</a><li>
<li><a href="contact.html">Contact</a></li>
</ul>
这很好用,但我意识到重复这样的代码是不好的做法,所以我把导航条代码放到一个单独的文件中,将我所有的html文件转换成php文件,并使用php include语句加载导航栏在每个页面中。然后我使用JavaScript试图动态设置活动类。但是,点击我的标签时,我无法显示活动课程。
<head>
<link href="../css/navbar.css" type="text/css" rel="stylesheet" />
</head>
<!-- JAVASCRIPT TO TOGGLE ACTIVE CLASS-->
<script type="text/javascript">
$(".nav a").on("click", function(){
$(".nav").find(".active").removeClass("active");
$(this).parent().addClass("active");
});
</script>
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <!-- Mobile collapse-->
<span class="icon icon-bar"></span>
<span class="icon icon-bar"></span>
<span class="icon icon-bar"></span>
</button>
<a class="navbar-brand" href="homepage.html">
<img src="../images/pksoilogo.png" id="logo">
</a>
</div>
<div class="collapse navbar-collapse"> <!-- Mobile collapse/Dropdown-->
<ul class="nav navbar-nav">
<li><a href="homepage.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li><a href="map.php">View Map</a></li>
<li><a href="index.php">Submit Document</a><li>
<li><a href="contact.php">Contact</a></li>
</ul>
</div>
</div>
</nav>
有关如何纠正JavaScript以解决此问题的任何想法?
答案 0 :(得分:0)
编辑 - 抱歉,我还没有读过您想要修复Javascript的部分。希望有人能尽快为您的问题提供JS解决方案!
这是一种解决方法。
<ul class="nav navbar-nav">
<li <?php if (basename($_SERVER['PHP_SELF']) == 'homepage.php') echo 'class="active"' ?>><a href="homepage.php">Home</a></li>
<li <?php if (basename($_SERVER['PHP_SELF']) == 'about.php') echo 'class="active"' ?>><a href="about.php">About</a></li>
<li <?php if (basename($_SERVER['PHP_SELF']) == 'map.php') echo 'class="active"' ?>><a href="map.php">View Map</a></li>
<li <?php if (basename($_SERVER['PHP_SELF']) == 'index.php') echo 'class="active"' ?>><a href="index.php">Submit Document</a></li>
<li <?php if (basename($_SERVER['PHP_SELF']) == 'contact.php') echo 'class="active"' ?>><a href="contact.php">Contact</a></li>
</ul>
显然,这不是最干净的方式,但它很容易。您还可以创建一个可以调用的功能,使其看起来更好。