我已经编写了一些jQuery来动态地将active
类添加到已单击的导航菜单中的li
项目。
但由于某些原因,active
类未添加到单击的li
元素中。有人知道为什么不加课吗?
$(document).ready(function() {
$('.navigation-menu a').click(function() {
//removing the previous selected menu state
$('.navigation-menu').find('li.active').removeClass('active');
//adding the state for this parent menu
$(this).parents("li").addClass('active');
});
});

.active { border: 1px solid red }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav role="navigation">
<ul id="js-navigation-menu" class="navigation-menu show">
<li class="nav-link">
<a href="">link_to 'ABOUT', page_path('about')</a>
</li>
<li class="nav-link">
<a href="">link_to "PEOPLE", members_path</a>
</li>
<li class="nav-link">
<a href="">link_to "RESEARCH", projects_path</a>
</li>
<li class="nav-link">
<a href="">link_to "PUBLICATIONS", publications_path</a>
</li>
<li class="nav-link">
<a href="">link_to 'CONTACT', page_path('contact')</a>
</li>
<li class="nav-link">
<a href="">link_to "Sign out", destroy_user_session_path, method: :delete</a>
</li>
</ul>
</nav>
&#13;
感谢您的帮助。
更新
将clickDefault()添加到click事件使代码工作,但是,在此之后,链接不再起作用:(
我发现了这个jQuery plugin,它就像一个魅力!
答案 0 :(得分:0)
您可以使用以下代码
$(document).ready(function () {
$('.navigation-menu li').click(function () {
$('.active').removeClass('active')
$(this).addClass('active');
});
});
答案 1 :(得分:0)
这个jQuery插件解决了我的问题: