这是我的代码,但不能正常工作......它将在页面刷新后删除活动类。
html代码
pack://siteoforigin:
Javascript代码
<div id="navbar" class="navbar-collapse collapse navbar-right">
<ul class="nav navbar-nav">
<li><a href="about-us.php">About us</a>
</li>
<li><a href="portfolio.php">Portfolio</a>
</li>
<li><a href="services.php">Services</a>
</li>
<li><a href="contact-us.php">Contact</a>
</li>
<li><a href="#">Blog</a>
</li>
</ul>
</div>
答案 0 :(得分:3)
我创建了一个使用localStorage设置活动元素并在页面加载时保持活动的示例:
$('#navbar ul li a').click(function() {
$('li a').removeClass("currunt");
$(this).addClass("currunt");
localStorage.setItem('active', $(this).parent().index());
});
var ele = localStorage.getItem('active');
$('#navbar ul li:eq(' + ele + ')').find('a').addClass('currunt');
答案 1 :(得分:0)
对于您当前的设置,似乎您不需要使用javascript来添加类,因为这些是没有下拉列表的直接链接,因此显然单击它们将重定向到另一个页面,类将被删除。没有JS的简单解决方案是这样的:
你的CSS会是这样的:
.about-body .about-link,
.portfolio-body .portfolio-link,
.services-body .services-link,
.contact-body .contact-link,
.blog-body .blog-link
{
background-color: red; /* or other styles you have in your active class */
}
<div id="navbar" class="navbar-collapse collapse navbar-right">
<ul class="nav navbar-nav">
<li class="about-link"><a href="about-us.php">About us</a>
</li>
<li class="portfolio-link"><a href="portfolio.php">Portfolio</a>
</li>
<li class="services-link"><a href="services.php">Services</a>
</li>
<li class="contact-link"><a href="contact-us.php">Contact</a>
</li>
<li class="blog-link"><a href="#">Blog</a>
</li>
</ul>
</div>
这里需要注意的一点是,您需要在每个页面上相应地设置正文类。例如您的about-us页面应在about-body
标记上有body
个类。希望这是有道理的。
答案 2 :(得分:0)
您能确认是否在页面中加载了jquery吗?
尝试在点击功能中添加console.log("item clicked")
以查看其是否正在运行
相同的代码对我有用,我刚刚添加了这个css
.current {
background-color: white;
font:black;
font-size:19px;
}