使用Bootstrap中的菜单控件时,其中的链接点击后,无法自动添加active类,即无法自动激活
<ul class="tabbable faq-tabbable"> <li class="active"><a href="@Url.Action("Index", "MyContract", new { area = "MyData" })">我的合同</a></li> <li><a href="@Url.Action("Index", "MyCashout", new { area = "MyData" })">我的请款</a></li> <li><a href="@Url.Action("Index", "MyReceive", new { area = "MyData" })">我的入库</a></li> <li><a href="@Url.Action("Index", "MyCashback", new { area = "MyData" })">我的付款</a></li> </ul>
这是一个典型的导航菜单,现在添加如下的脚本处理
$(function () { $(".faq-tabbable").find("li").each(function () { var a = $(this).find("a:first")[0]; if ($(a).attr("href") === location.pathname) { $(this).addClass("active"); } else { $(this).removeClass("active"); } }); })
原理很简单,就是找到所有的li
标签,对其a
标签的链接地址进行判断,如何和当前浏览器的地址一致,就认为是当前应该激活的菜单,添加active
类,否则就取消
此解决办法是网上查阅别人的