我有一个带有这个JQuery代码的水平CSS菜单:
function setActiveLink(target) {
$(".MenuLink").removeClass("active");
$('a[href=' + target + ']').addClass("active");
//$('.tabcontent').addClass('hide');
$(target).removeClass('hide');
}
$(document).ready(function(){
$('.MenuLink').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
document.location.hash = target;
setActiveLink(target);
});
});
我想在点击的链接上设置一个活动类(并删除所有其他活动类)
另外,我希望能够在单击子菜单项时在父项上添加活动类。
我尝试创建上面的函数,但它不会添加类
我用完整的代码创建了一个小提琴:
答案 0 :(得分:1)
首先删除该类,然后检查当前单击的锚是否具有类MenuLink
,如果没有找到最接近的MenuLink
,它不是真正的父级,而是前一个元素最接近的UL
$(document).ready(function () {
$('li a').click(function (e) {
e.preventDefault();
document.location.hash = $(this).attr('href');
$(".MenuLink").removeClass("active");
var link = $(this).hasClass('MenuLink') ? $(this) : $(this).closest('ul').prev();
link.addClass('active');
});
});
答案 1 :(得分:0)
首先,如果要使用jQuery,则需要包含jQuery。我理解你了吗?你想要this之类的东西吗?
function setActiveLink(target) {
$(".MenuLink").removeClass("active");
target.addClass("active");
//$('.tabcontent').addClass('hide');
$(target).removeClass('hide');
}
$(document).ready(function(){
$('.MenuLink').click(function(e) {
e.preventDefault();
var target = $(this).attr('href');
document.location.hash = target;
setActiveLink($(this));
});
});