我有一個菜單,鏈接到同一頁面上的內容,並通過jQuery淡入div的進出,完美工作。Nav addClass/removeClass點擊
導航中的第一個鏈接有一個附加到它的類(current_page_item),我想單擊導航中的任何其他鏈接來刪除該類並將其添加到單擊的鏈接。
到目前爲止,我已經試過類似:
$(function() {
$("#nav-links a").click(function(){
$("#nav-links ul li").removeClass("current_page_item").find("li:last a").addClass("current_page_item");
});
});
不工作。
我很新的JavaScript,所以任何幫助,將不勝感激。
謝謝!
編輯:
下面是導航HTML:
<div id="nav-wrap">
<ul class="group" id="nav-links">
<li class="current_page_item"><a href="#recent" class="linkclass recent">RECENT</a></li>
<li><a href="#work" class="linkclass work">WORK</a></li>
<li><a href="#who" class="linkclass who">WHO</a></li>
<li><a href="#services" class="linkclass services">SERVICES</a></li>
<li><a href="#contact" class="linkclass contact">CONTACT</a></li>
</ul>
</div>
編輯2:
使用下面的答案仍似乎並沒有達到我想要的。也許是因爲我使用的jQuery插件(魔術線)。 Link
所以基本上我想'線'留在點擊下面。如果我在正確的地方加載了'current_page_item'的新頁面,但是由於我正在淡入淡出DIV,我無法做到這一點。
該線條跳轉回到具有'current_page_item'類的li項目。也許這個代碼可以修改,以添加類到單擊元素?
這是代碼。
$(function() {
var $el, leftPos, newWidth,
$mainNav = $("#nav-links");
$mainNav.append("<li id='magic-line'></li>");
var $magicLine = $("#magic-line");
$magicLine
.width($(".current_page_item").width())
.css("left", $(".current_page_item a").position().left)
.data("origLeft", $magicLine.position().left)
.data("origWidth", $magicLine.width());
$("#nav-links li a").hover(function() {
$el = $(this);
leftPos = $el.position().left;
newWidth = $el.parent().width();
$magicLine.stop().animate({
left: leftPos,
width: newWidth
});
}, function() {
$magicLine.stop().animate({
left: $magicLine.data("origLeft"),
width: $magicLine.data("origWidth")
});
});
});
將創建一個小提琴[here](http://jsfiddle.net),這樣我們可以輕鬆操縱和解決您的問題。 – diEcho
我們必須看到你的HTML標記來幫助你。你可以編輯你的問題,並添加'#nav-links'部分的HTML標記嗎? –
@kara補充說明,謝謝 – malicedix