在悬停时更改文本颜色 - Jquery

时间:2011-09-07 00:28:11

标签: jquery html css

我在.navContainer css div中有一个导航菜单。点击后,li标记文字中的ul个标记之一会改变颜色。但是我想知道如何使用jquery,我可以保留当前所选导航项的颜色并更改当前悬停项#d49a9a的颜色,直到用户点击并且当前所选导航项的颜色变为#c2c0c0

请告诉我怎么做!

到目前为止我的代码:

CSS:

.navContainer ul{
    left: 10px;
    top:  20px;
    position: absolute;
    color: #c2c0c0;
    font-family: 'Terminal Dosis';
    font-weight: 200;
    font-size: 20pt;
    list-style-type: none;
    line-height: 50px;
}
.navContainer {
    left: 150px;
    top: 150px;
    position: absolute;
}

HTML(在body标签内)

<div class="navContainer">
                <ul>
                    <li style="color: #d49a9a">Work</li>
                    <li><a href="#">Blog</a></li>
                    <li>About</li>
                    <li>Contact</li>
                </ul>
            </div>
            <script type="text/javascript">
            $(".navContainer li").click( function() { 
                      $(".navContainer li, .navContainer li a").css("color", "#c2c0c0");
                      $(this).css("color", "#d49a9a");
                    });
            </script>
            <script type="text/javascript">

            </script>
        </body>

3 个答案:

答案 0 :(得分:4)

我认为你正在寻找这个看看

正在使用 demo

您只需要在li click上添加以下类,只需设置li元素click的颜色

.navContainer li:hover{ 
   color:#d49a9a
}

JS

$(".navContainer li").click( function() { 
    $(this).css("color", "#d49a9a");
});

答案 1 :(得分:1)

我建议您使用这种标记来实现这一目标。你根本不需要jQuery!

<ul>
    <li><a href="#">Menu1</a><div class="dropdown"></div></li>
    <li><a href="#">Menu2</a><div class="dropdown"></div></li>
    <li><a href="#">Menu3</a><div class="dropdown"></div></li>
</ul>

然后像这样添加CSS

li{float:left; position:relative;width:60px; height:20px; background:#ccc; border:1px solid black;}
.dropdown{position:absolute; width:300px; height:200px; border:1px solid #ccc; background:#444; display:none;}
li:hover .dropdown{display:block;}

See in action

使用该标记,您将在所有时间菜单中启用li:hover。您应该在菜单树下添加子菜单。 如果您想拥有更好的用户体验,可以使用jQuery hover intent plugin来延迟悬停。

答案 2 :(得分:0)