2013-09-01 41 views
0

這裏是我的問題,我有一個不使用runat =「server」的菜單項目列表,所以我的默認頁面有一個類似localhost/Default.aspx的URL,如果我在visual studio中運行它,我的javascript會找到我當前的頁面,即「Default.aspx」,並突出顯示當前的菜單項,此時一切正常。Javascript首次訪問網站時突出顯示菜單

現在,如果我使用ftp發佈我的網站,我第一次訪問該網站時,該網站將具有localhost,最終沒有Default.aspx,現在我的javascript將找不到「Default.aspx」在我的頁面,將返回「」,所以我的菜單項沒有突出顯示。如果我在我的菜單中點擊主頁,則URL變爲localhost/Default.aspx,菜單變爲高亮顯示。

那麼有沒有辦法改變我的JavaScript,所以我第一次點擊該網站時,它仍然會突出顯示我的菜單,即使我的網址在最後不包含「Default.aspx」?

這裏是我的javascript」

$(function() { 
    var url = window.location.href.substr(window.location.href.lastIndexOf("/") + 1); 
    $('[href$="' + url + '"]').parent("li").addClass("current_page_item"); 
}); 

正如你所看到的,如果我使用

<a runat="server" href="~/">Home</a> 

我的網頁,

lastIndexOf("/") 
在我的JavaScript

總是返回我空白,所以沒有突出顯示,我知道問題出在哪裏,但無法找出解決辦法

感謝

HTML:

1.主菜單

<div id="menu" class="container"> 
     <ul> 
      <li class="current_page_item"><a runat="server" href="~/" accesskey="1" title="">Home</a></li> 
      <li><a href="Softcare/SoftcareHome.aspx" accesskey="2" title="">Softcare</a></li> 
      <li><a href="Softlearn/SoftlearnHome.aspx" accesskey="2" title="">Softlearn</a></li> 
      <li><a href="Software/SoftwareHome.aspx" accesskey="2" title="">Software</a></li> 
     </ul> 
</div> 

2.sidemenu

<div id="sidemenu"> 
     <div class="section-title"> 
      <asp:ContentPlaceHolder ID="submenutitle" runat="server"> 
      </asp:ContentPlaceHolder> 
     </div> 
     <ul> 
      <li><a runat="server" href="~/" accesskey="1" title="">Home</a></li> 
     </ul>  
</div> 

回答

0
$('[href$="' + ((url == "")?"~/":url) + '"]').parent("li").addClass("current_page_item"); 
+0

感謝小牛,但它仍然沒有突出,父網址「〜/」什麼也沒有 – Mindless

+0

你可以發佈html的您的菜單 – Maverick

+0

我在我的問題中添加了它 – Mindless