2013-07-11 68 views
1

我使用<?php require語句鏈接到常規網頁的單獨文件中導航。我在菜單中的<li>上有一堂課,它會將單詞改爲白色而不是灰色。因此,在短期我:使用外部文件元素更改班級

<li class="active"> 
    <a href="">Home</a> 
</li> 

<li class=""> 
    <a href="">About</a> 
</li> 

我需要的類更改爲active將正在觀看每一頁時,但""不被看時。我不知道該怎麼做?

我希望這是有道理的。

更新:

按照該意見,我認爲這將是一個好主意,勾勒出我所想要做也許更好一點。

  1. 導航本身就是叫一個單獨的文件中navigation.php
  2. 實際的頁面是在文件前的基礎:home, about, contact
  3. 當頁面Home所查看的類active需求要上該菜單項的<li>。當正在查看about頁面時,該課程需要在該菜單項目上,菜單項目類別home需要保留爲空。
+0

您可以改變相關DOM元素的'className'屬性。目前還不清楚「每個頁面被瀏覽時」的含義。 – Pointy

+0

編輯您的文章幷包含您的CSS,否則我們無法看到完整圖片。 – nickhar

回答

2

您正在尋找window.onfocus觸發器時執行的操作 - 在這裏使用JQuery類操作,這是最簡單的方法。

https://developer.mozilla.org/en-US/docs/Web/API/window.onfocus

http://api.jquery.com/addClass/

http://api.jquery.com/removeClass/

編輯:如果我理解你的設計,你有過一個iframe鏈接控股子頁(家,約等),導航欄一個。在這種情況下,只需將點擊處理程序綁定到設置和取消設置類的導航欄div並將適當的頁面加載到iframe中。

+0

我用我用來使其實際工作的代碼回答了問題。但這個答案的第一個鏈接https://developer.mozilla.org/en-US/docs/Web/API/window.onfocus給了我它的基礎! – user2371301

0

這其實很簡單。

添加唯一編號的在菜單中<li>的每一個

,然後使用jQuery的window.onfocus觸發器和把這個腳本在頁面上的每一個(家庭,約,聯繫方式)

window.onfocus = document.getElementById('indexNav').className=" active"; 

更改元素ID以匹配每個頁面。所以,在首頁上

你會是這樣的:indexNav的ID

,然後在關於頁,你會碰到這樣的:aboutNav的ID。

0

我想這就是你要找的人,我已經測試了它,

<style> 
.active{ 
color:white !important; 
} 
<style> 
<script> 
var links = document.getElementsByTagName('a'); 
for (var i = links.length - 1; i >= 0; i--) { 
    if(links[i].href==this.location) links[i].parentNode.setAttribute('class','color'); 
}; 
</script> 

這這麼想的需要鏈接標題具有相同的名稱的位置。