我正在尝试将动态活动类添加到主菜单中,但我无法实现此目的,
我的jquery是,
<script type="text/javascript">
$(document).ready(function() {
$('#navi a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
});
</script>
我的主菜单是,
<ul id="navi">
<li><a href="#">About MHG</a></li>
<li><a href="#">Workout Programs</a></li>
<li><a href="#">Fitness Tips</a></li>
<li><a href="#">Contact Us</a></li>
<li><a href="#">Read Our Blog</a></li>
</ul>
答案 0 :(得分:18)
试试这个
<ul id="navi">
<li><a class="menu" href="#">About MHG</a></li>
<li><a class="menu" href="#">Workout Programs</a></li>
<li><a class="menu" href="#">Fitness Tips</a></li>
<li><a class="menu" href="#">Contact Us</a></li>
<li><a class="menu" href="#">Read Our Blog</a></li>
</ul>
<强> jquery的强>
$('a.menu').click(function(){
$('a.menu').removeClass("active");
$(this).addClass("active");
});
检查这个小提琴http://jsfiddle.net/9nd4j/1/
答案 1 :(得分:1)
^^与Rory !!上面的评论相同!
,如果你仍然需要,你可以做到
$("#navi a").live("click", function(){
$("#navi a").removeClass("active");
$(this).addClass("active")
});
如果所有链接都指向解决方案上方的同一页面,那么我将看到您将从一个页面遍历到另一个页面,这将不起作用。
由于
答案 2 :(得分:0)
您的描述不是很清楚。如果你的意思是你正在徘徊的列表项,那么它应该是这样的:
$('a.menu').hover(
function () {
$(this).addClass("active");
},
function () {
$('a.menu').removeClass("active");
});
答案 3 :(得分:0)
此方法将检查用户正在访问的页面URL,然后在<li>
标签中添加活动的类。
HTML
<div id="nav">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li><a href="member.php">Member</a></li>
<li><a href="project.php">Project</a></li>
<li><a href="activity.php">Activity</a></li>
</ul>
</div>
JS
var setActive = function () {
// Get the last item in the path (e.g. index.php)
let url = window.location.pathname.split('/').pop();
// Add active nav class based on url
$("#nav ul li a").each(function () {
if ($(this).attr("href") == url || $(this).attr("href") == '') {
$(this).closest('li').addClass("active");
}
})
// Add the active class into Home if user omit index.php from url
if (url == '') {
$("#nav ul li").eq(0).addClass("active");
}
};
$(function () {
setActive();
});