2013-09-01 18 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