我的菜单不起作用。例如,当我点击购物车时,活动的菜单仍然是主页。什么似乎是问题?谢谢!
<html lang="en"><head>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<script src="bootstrap/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="home.php">company</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="home.php"><i class="glyphicon glyphicon-home"></i><span> Home</span></a></li>
<li><a href="cart.php"><i class="glyphicon glyphicon-shopping-cart"></i><span> Cart</span></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="register.php"><i class="glyphicon glyphicon-registration-mark"></i><span> Register</span></a></li>
<li class="active"><a href="login.php"><i class="glyphicon glyphicon-user"></i><span> Login</span></a></li>
</ul>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
有多种方法可以解决这个问题正如@Blazemonger所提到的,你应该实现自己的逻辑。你可以做这个服务器端或客户端。因为我不知道你在服务器端使用什么,我将展示如何使用jQuery轻松解决它。
想法是检查当前网址,如果当前网址==导航网址,则添加类处于活动状态。
$(document).ready(function()
{
$('.navbar-nav > li > a').each(function(i, a)
{
var $a = $(a);
var url = $a.attr('href');
if(location.pathname.indexOf(url) == 1)
{
$a.parent().addClass('active');
}
else
{
$a.parent().removeClass('active');
}
});
});
location.pathname返回/ url-path,所以在您的示例/login.php中。要与login.php匹配,您需要检查url是否以第二个字符开头(skip /)。如果您更新网址并在其前面添加/,则可以将索引从1更改为0以使其正常工作。希望它有意义。
这是非常简单的代码(当然,你可以让它变得更好),但它是一个简单的例子,如何使它工作。