2015-02-10 37 views
0

我有這個jQuery代碼水平CSS菜單:JQuery的設定活動鏈接

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/

回答

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

+0

這就是我想要的 - 你可以點擊這裏請 - http://pastebin.com/KZzQ9Cbi我添加了不顯示警報,但是如果我添加它的document.ready功能上面,警報顯示? – Charles 2015-02-10 23:07:29

+0

@Charles - 這意味着你沒有添加jQuery,你必須在腳本之前包含jQuery。 – adeneo 2015-02-10 23:27:25

+0

啊是的 - 現在工作。雖然它似乎將活動類添加到子項,而不是父項? – Charles 2015-02-10 23:34:26

0

首先你需要包含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)); 
    }); 
});