2011-08-08 135 views
2

我有一個站點菜單,其中包含鏈接(當然,它是一個閃爍的站點菜單),它們只在盤旋時更改顏色,這些鏈接由我的sitemenu.php控制,該站點包含在每個頁面中容易改變sitemenu ..我的觀點是,現在我喜歡它,所以當你在一個頁面上,帶你到那裏的鏈接是彩色的,直到你離開那個頁面。我不能手動做,因爲所有的鏈接都在一個主要的PHP腳本,如果改變改變其餘以同樣的方式。Javascript特定屬性更改

我知道如何添加一個類,它將永久地着色一個鏈接,但不知道如何做JavaScript,但我認爲它只是使用當前頁面的URL,在sitemenu中找到並添加一個類屬性。

+0

可能的重複[如何給活動菜單項不同樣式](http://stackoverflow.com/questions/3896483/how-to-give-active-menu-item-different-styling) –

+0

用戶沒有有一個PHP腳本控制站點菜單上的所有鏈接,我無法手動編輯它,因爲所有鏈接都存儲在一個腳本中幷包含在所有頁面中。 – Harry

回答

0

你可以用你的PHP腳本或者你的Javascript函數來做到這一點。

PHP:

在你sitemenu.php,做這樣的事情在您的菜單 -

<li><a href="index.php"<?php if($page == 'index') echo ' class="active"'; ?>>Home</a></li> 
<li><a href="b.php"<?php if($page == 'b') echo ' class="active"'; ?>>B</a></li> 
<li><a href="c.php"<?php if($page == 'c') echo ' class="active"'; ?>>C</a></li> 
<li><a href="d.php"<?php if($page == 'd') echo ' class="active"'; ?>>D</a></li> 

現在,在每個網頁上,你將必須包括之前設置$頁你的sitemenu.php文件。

例如,在你的索引頁這樣做

$page = 'index'; 
include('sitemenu.php'); 

除非你與你的Javascript做AJAX,你將不得不解析出你是在什麼頁面,然後更改鏈接的樣式。如果你正在使用AJAX每個鏈接的點擊,你必須做的就是你的onclick函數內使用

this.style.color='somecolor' 

希望這回答了你的問題。只是個人喜好,但我喜歡用PHP路線。隨時隨地添加/刪除項目可以輕鬆編輯導航。

0

如何添加一些css規則,如a:visited{color:#eeeeee;}或其他?如果您來自某個頁面,並且菜單中有指向此頁面的鏈接,則此鏈接應該有訪問的僞選擇器。

0

這應該給你基本的想法(使用jQuery/JavaScript)。它將active類添加到當前頁面。您可能需要根據您的網站的鏈接約定了一下調整:

var url = document.location.pathname.toString(); 

$('a').each(function() { 
    // if it matches 
    if ($(this).attr('href').indexOf(url) != -1) { 
     $(this).addClass('active'); 
    } 
}); 

Here's a working demo