2013-09-01 3 views
0

Вот моя проблема, у меня есть список элементов меню, не использующих runat = "server", поэтому моя страница по умолчанию имеет URL-адрес, например localhost/Default.aspx, если i запустите его в visual studio, мой javascript найдет мою текущую страницу, которая является «Default.aspx», и выделит текущий пункт меню, все отлично работает на этом этапе.Javascript не выделяет меню при первом посещении сайта

Теперь, если я публикую свой сайт с помощью ftp, первый раз, когда я буду на этом сайте, на сайте будет указатель localhost, без Default.aspx в конце, теперь мой javascript не найдет «Default.aspx», на моей странице и вместо этого вернется "", поэтому мой пункт меню не будет выделен. Если я нажимаю на главную страницу в своем меню, url становится localhost/Default.aspx, и меню становится подсвеченным.

Так есть способ изменить мой javascript, поэтому в первый раз, когда я нажму на этот сайт, он все равно выделит мое меню, хотя мой url не содержит «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.Main меню

<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

Благодаря Maverick, однако она до сих пор не освещающие, родитель url "~ /" ничего – Mindless

+0

вы можете разместить html ваше меню – Maverick

+0

Я добавил его в свой вопрос – Mindless

Смежные вопросы