我正在嘗試創建一個疊加的導航列表,其中突出顯示了您選擇的項目。它看起來像這樣。當某些鏈接相同時,當前選定的項目
<div class="page-list">
<ul class="nav nav-pills nav-stacked">
<li><a href="Page1.html" > Page1 </a></li>
<li><a href="Page2.html" > Page2 </a></li>
<li><a href="Page3.html" > Page3 </a></li>
<li><a href="Page4.html" > Page4 </a></li>
<li><a href="Page5.html" > Page5 </a></li>
<li><a href="Unavailable.html" > Page6 </a></li>
<li><a href="Unavailable.html" > Page7 </a></li>
</ul>
</div>
我遇到的問題是,最後兩頁共享相同的鏈接,我似乎無法得到的只是所選擇的頁面,在列表中突出顯示。
我正在使用這個用於我的JavaScript。
<script>
$(function(){
$('a').each(function() {
if ($(this).prop('href') == window.location.href) {
$(this).addClass('current');
}
});
});
</script>
但是,這會導致同一頁面的所有鏈接突出顯示。
我試着解決這個問題,但現在點擊時沒有鏈接突出顯示。
<script>
$(".page-list a").click(function() {
$(this).parent().previoussibling().find('a').removeClass('current');
$(this).addClass("current");
});
</script>
添加錨點的HREF可能會奏效。你有沒有試過'href =「Unavailable.html#1'和'href =」Unavailable.html#2'?他們都鏈接到相同的頁面,但是JS的唯一鏈接 –
我認爲每個href都有一個'location.hash',並且只對所有鏈接使用該方法。也就是說,也許將位置散列值分配給每個「li」的ID或類似的東西。那麼你不在乎你的頁面名稱是否改變。 – Marc