0
我有3個級別的導航。如果你點擊其中一個鏈接,它將根據等級獲得一個類名。等級1將具有類別名稱「active1」,等級2「active2」,等級3「active3」。jQuery:同級別刪除類
我設法在點擊時獲得類名,但其他類名在被點擊後立即被刪除。
該計劃是..如果我點擊第一級的鏈接,第二級將顯示,如果我點擊第二級的鏈接,第三級將顯示。
我該如何解決這個問題?
HTML:
<div id="nav">
<ul class="first">
<li><a href="#" title="Nav" class="active">Link</a>
<ul class="second">
<li><a href="#" title="Sub Nav">Link 2</a>
<ul class="third">
<li><a href="#" title="Sub Nav 2">Link 3</a></li>
<li><a href="#" title="Sub Nav 2">Link 3</a></li>
</ul>
</li>
<li><a href="#" title="Sub Nav">Link 2</a></li>
<li><a href="#" title="Sub Nav">Link 2</a></li>
</ul>
</li>
<li><a href="#" title="Nav">Link</a></li>
<li><a href="#" title="Nav">Link</a></li>
<li><a href="#" title="Nav">Link</a></li>
</ul></div>
JS/jQuery的
$('.first a').click(function() {
if ($(this).hasClass('active')) {
return false;
} else if ($(this).not('active')) {
$('.first').find('.active').removeClass('active');
$(this).addClass('active');
}
return false;
});
$('.second a').click(function() {
if ($(this).hasClass('active2')) {
return false;
} else if ($(this).not('active2')) {
$('.second').find('.active2').removeClass('active2');
$(this).addClass('active2');
}
return false;
});
$('.third a').click(function() {
if ($(this).hasClass('active3')) {
return false;
} else if ($(this).not('active3')) {
$('.second').find('.active3').removeClass('active3');
$(this).addClass('active3');
}
return false;
});
你真的需要三個不同的活動類嗎?如果只是爲了造型,你可以用''''''來區別它們,比如'#nav> ul> li a.active',你甚至不需要'.first','.second' –
@ user3095496 :其實我有更好的解決方案。剛更新我的答案和演示,而不是淡入淡出。所以當你再次點擊它消失。 –
@koala_dev感謝您的想法! – marcandrew