2012-10-24 62 views
3

當在網站的#page1上時,我希望#page1的菜單項像當前頁面樣式一樣高亮顯示。我已經嘗試添加一個類並直接應用下面的代碼,不起作用。Jquery - 如何找到一個#tag一個名字並申請一個班級

誰能告訴我我做錯了什麼?提前致謝。

var url = window.location.href; 
if (url.search("#page1") > 0) { 
$("#mainNav ul li a.scroll1").addClass("current"); 
$("#mainNav ul li a.scroll1").css("color","#000"); 
} 

回答

2

這聽起來像你應該只是能夠搜索window.location.hash並將其用作選擇器。例如,如果您使用的是http://localhost/index.php#page1,則窗口對象返回的散列值將爲#page1。你可以用它來查找你的元素:

// Reference to hash, or empty string 
var page = window.location.hash; 

// If the resulting string isn't empty 
if (page.length) { 
    // Target the corresponding element, add a class 
    $("a." + page.slice(1).replace(/page/,'scroll')).addClass("selected"); 
} 
+0

+1我一直在尋找 –

+0

謝謝喬納森,我有4#anames安裝,#page1,#page2,#page3,#page4。第1頁與菜單項a.scroll1,第2頁 - a.scroll2等有關。我不明白在這種情況下如何使用你的代碼? – user1770137

+0

@ user1770137這需要刪除'#'並用單詞「scroll」替換「page」。我相信上面的更新應該考慮到這一點。 – Sampson

0

在這個問題之後,我找到了一個非常簡單的解決方案來解決這個問題。下面的代碼在單擊時在LI上創建一個Current Page類,並同時從其他Menu LI中刪除所有其他當前頁面類。

HTML

<ul> 
<li class="scrollButton1 current"><a href="#page1">Welcome</a></li> 
<li class="scrollButton2"><a href="#page2">Education</a></li> 
<li class="scrollButton3"><a href="#page3">Triathlon</a></li> 
<li class="scrollButton4"><a href="#page4">Register</a></li> 
</ul> 

JQUERY

$(document).ready(function(){ 
$('.scrollButton1').click(function(){$('html, body').removeClass('current'), $('#mainNav ul li.scrollButton1').addClass('current');}); 
$('.scrollButton2').click(function(){$('html, body').removeClass('current'), $('#mainNav ul li.scrollButton2').addClass('current');}); 
$('.scrollButton3').click(function(){$('html, body').removeClass('current'), $('#mainNav ul li.scrollButton3').addClass('current');}); 
$('.scrollButton4').click(function(){$('html, body').removeClass('current'), $('#mainNav ul li.scrollButton4').addClass('current');}); 
}); 

希望這有助於。

相關問題