4

我有一个 jsp 页面,里面有一些链接。

<div id="menu">
    <span></span>
    <ul class="nav">
        <li class="top_border"></li>                
        <li class="item3"><a href="">Polos</a></li>
        <li class="item4"><a href="">Blouses</a></li>
        <li class="item5"><a href="">Sweaters</a></li>
        <li class="item6"><a href="">Pants </a></li>
        <li class="item7"><a href="">Jeans</a></li>
        <li class="item8"><a href="">Jackets</a></li>
        <li class="item9"><a href="">Footwear</a></li>  
    </ul>
</div>

我为这个写了如下风格

ul.nav li a:hover {
    background: #ebebeb url(images/border.png) no-repeat;
    color: red;
    padding: 7px 15px 7px 30px;
}

当我悬停它时,颜色会发生变化,当我单击该链接时,该链接的相应页面会打开。之后就和以前一样正常了。我想在当前页面的链接上应用该样式。我该怎么做?我在后面使用JSP。

4

2 回答 2

12

这样做的方法是在 JSP 中进行:

<div id="menu">
    <span></span>
    <ul class="nav">
        <li class="top_border"></li>                
        <li class="item3${pageContext.request.requestURI eq 'path/polos.jsp' ? ' active' : ''}"><a href="path/polis.jsp">Polos</a></li>
        <li class="item4${pageContext.request.requestURI eq 'path/blouses.jsp' ? ' active' : ''}"><a href="path/polis.jsp">Blouses</a></li>
        <li class="item5${pageContext.request.requestURI eq 'path/sweaters.jsp' ? ' active' : ''}"><a href="path/sweaters.jsp">Polos</a></li>
        <li class="item6${pageContext.request.requestURI eq 'path/pants.jsp' ? ' active' : ''}"><a href="path/sweaters.jsp">Pants</a></li>
        <li class="item7${pageContext.request.requestURI eq 'path/jeans.jsp' ? ' active' : ''}"><a href="path/sweaters.jsp">Jeans</a></li>
        <li class="item8${pageContext.request.requestURI eq 'path/jackets.jsp' ? ' active' : ''}"><a href="path/sweaters.jsp">Jackets</a></li>
        <li class="item9${pageContext.request.requestURI eq 'path/footwear.jsp' ? ' active' : ''}"><a href="path/sweaters.jsp">Footwear</a></li>
    </ul>
</div>

你必须确保你有正确的路径。我建议您直接${pageContext.request.requestURI}在页面中输出,以查看您得到的结果并相应地调整比较。

之后你只需要声明一个 CSS 类:

.active > a
{
    color: red;
}

我还建议您将所有链接放入其中List并进行迭代以呈现您的菜单,因为您不需要重复该代码。你后面有JSP,用它!

于 2013-06-10T06:32:00.817 回答
2

尝试这个

ul.nav li a:visited {
    color: red;/* you can keep your original color*/
}

替代jQuery解决方案

$('.nav li a').on('click', function() {
    $('.active').removeClass('activelink');
    $(this).addClass('activelink');
});

现在你可以添加 css

.activelink{color:red;}
于 2013-06-10T05:57:18.813 回答