0

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

现在,如果我使用 ftp 发布我的网站,当我第一次访问该网站时,该网站将具有 url 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.主菜单

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

1 回答 1

0
$('[href$="' + ((url == "")?"~/":url) + '"]').parent("li").addClass("current_page_item");
于 2013-09-01T10:07:10.167 回答