JQuery设置了活动链接

时间:2015-02-10 22:42:32

标签: jquery css

我有一个带有这个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);
    });
    });

我想在点击的链接上设置一个活动类(并删除所有其他活动类)

另外,我希望能够在单击子菜单项时在父项上添加活动类。

我尝试创建上面的函数,但它不会添加类

我用完整的代码创建了一个小提琴:

http://jsfiddle.net/e79nz1cj/

2 个答案:

答案 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');
    });
});

FIDDLE

答案 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));
  });
});