2012-04-02 156 views
0

我使用jQuery .load()在多個頁面上加載了「navigation.html」(靜態編碼導航)文件。現在我需要爲每個頁面用戶點擊動態設置活動<li>。出於具體原因,我無法使用body id。 任何其他方式來做到這一點?在靜態導航上動態設置活動鏈接

回答

1

相匹配。如果你可以通過類或ID來識別您當前的頁面當然這隻會工作(例如:身體> DIV#觸點)爲contacts.html和這個類/ id爲獨特的,那麼你必須與你的導航相匹配,其他方式是匹配window.location.href值(如果你想分析)與你的導航。文件,其中包括你的每一頁

function changeActiveLink() { 
    var currentLocation = window.location.href; 
    currentLocation = currentLocation.replace('//', '/').split('/'); 
    var page = currentLocation[currentLocation.length - 1]; 

    if (page == "") { page = 'index.html'; } 

    $('#leftNav1 a[href*="'+ page +'"]').addClass('active'); 
} 

當包括「init.js」這條線是從每個文件名爲:

changeActiveLink在JS(init.js EX)定義。

$('#leftNav1').load('navigation.html', changeActiveLink); 
+0

有沒有可能得到您的想法的例子? – marb 2012-04-02 19:25:57

+0

後更新:) – h4cky 2012-04-02 19:34:07

+0

不適合我,可能是因爲我的navigation.html是一個單獨的頁面,並正在動態加載... – marb 2012-04-02 20:16:28

0

你可以設置一些jquery腳本來獲取url,然後找到與之匹配的li的href。這將允許您將addClass()添加到活動的li。

如果您的href網址

0

或者您可以使用任何HTML甚至HTML5標籤來指定li項目。

<li class="some"> 

​​

<li attr-specify="some-specific-in-url"> 

和jQuery與window.location的對象 $( '的Li [標題=「' + window.location.path +'」] 「).addClass( 「活性」);

+0

好吧似乎合法,但他將如何獲得當前頁? '[一些]'必須是他所擁有的每個頁面的動態值。 – h4cky 2012-04-02 19:17:58

+1

好的,但問題是**靜態頁面導航**。所以你可以使用javascript window.location來獲得真正的href – autumncollection 2012-04-02 21:11:19