第一次访问网站时,Javascript没有突出显示菜单

时间:2013-09-01 10:03:15

标签: javascript jquery html asp.net

这是我的问题,我有一个不使用runat =“server”的菜单项列表,所以我的默认页面有一个像localhost / Default.aspx的网址,如果我在visual studio中运行它,我的javascript会找到我的当前页面,即“Default.aspx”并突出显示当前菜单项,此时一切正常。

现在,如果我使用ftp发布我的网站,我第一次访问该网站时,该网站将拥有网址localhost,最后没有Default.aspx,现在我的javascript将找不到“Default.aspx”我的页面将改为返回“”,因此我的菜单项不会突出显示。如果我单击菜单中的主页,则网址将变为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.main menu

<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>

1 个答案:

答案 0 :(得分:0)

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