【发布时间】:2016-02-21 17:31:30
【问题描述】:
我有以下导航栏:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">WebSiteName</a>
</div>
<ul class="nav navbar-nav navbar-right">
<li><%= link_to 'Home', welcome_index_path %></li>
<li><%= link_to 'Projects', projects_path %> </li>
<li><%= link_to 'Users', users_path %> </li>
</ul>
</div>
</nav>
这个 jquery 会根据点击来改变选中的项目,其中.selectednav 有background-color: black:
<script>
$(document).ready(function() {
$("li").click(function(){
$(this).addClass("selectednav");
$(this).siblings().removeClass("selectednav");
});
});
</script>
但是,在单击导航栏项目后,.selectednav 类仅适用于该元素片刻,然后消失。
我发现解决此问题的唯一方法是从 HTML 中删除以下行:
<ul class="nav navbar-nav navbar-right">
但这当然会破坏我的样式,我宁愿把它放在这里以适应引导框架的其余部分。
我也尝试过使用 Bootstrap 的内置 active 类,但结果相同(删除 ul 声明可以解决问题,但会破坏我的风格)。
谁能告诉我这里发生了什么,或者可能是什么原因造成的?
看起来是因为页面在更改类之后重定向到链接,selectednav 类重置为原来的样子。
【问题讨论】:
-
你应该在页面加载时添加活动类,我建议你阅读这篇文章,也许它会帮助kevinleary.net/highlighting-the-current-page-with-php-jquery
标签: jquery html css ruby-on-rails twitter-bootstrap