2013-10-21 20 views
0

我買了一個css模板。 它實現的導航,以便。將CSS模板轉換爲帶有主頁面的asp.net

<li class="current"><a href="services.html">Services</a></li> 
<li><a href="news.html">News</a></li> 
<li><a href="portfolio.html">Portfolio</a></li> 
<li><a href="elements.html">Elements</a></li> 
<li><a href="contact.html">Contact</a></li> 

它包含每個html文件中的導航標籤,並將列表項類標記爲當前頁面的當前值。

現在我將其轉換爲母版頁佈局。 如何檢測當前頁面並使用JavaScript將類添加到列表項中。 或其他任何解決此問題的方法。

+0

你使用MVC嗎? – Nitesh

+0

顯示您的asp.net代碼atleast –

+0

在.net我有標記只有沒有.net的東西...我沒有使用mvc其webforms只 – user79808

回答

1

這是一個簡單的方法來做到這一點(使用jQuery):

function syncMenu() { 
     var url = window.location.href, pageStart, pageEnd, pageName; 
     pageStart = url.lastIndexOf("/") + 1; 
     pageEnd = url.lastIndexOf("."); 
     pageName = url.substring(pageStart, pageEnd); 

     $('#Menu').find('li').removeClass('selected'); 
     $('#Menu').find('a[href^="' + pageName + '"]').parent().addClass('current'); 

} 

調用此函數作爲document.ready的第一件事,當你的頁面加載,即第一件事。

這個想法是,你的網頁名稱爲anchorhref。我們從當前網址中檢索頁面名稱,並使用它搜索所有li中的a,其中包含該頁面名稱爲href。添加一個類(當前在你的情況下)到li

+0

還有一個問題,我也有一個元素顯示的主頁>>當前頁..硬編碼在每一頁我如何發送當前頁面的代碼 – user79808

+0

這取決於。如果你的元素對於當前頁面是分開的,那麼只需執行'$('#elemId').text(pageName)'。 – Abhitalks