日期:2014-05-16  浏览次数:20588 次

jquery和CSS实现导航效果给li设置样式属性问题
例如:
<ul>
<li class="on"><a href="#">首页</a></li>
<li><a href="#">主页</a></li>
<li><a href="#">足球</a></li>
<li><a href="#">篮球</a></li>
<li><a href="#">台球</a></li>
</ul>

点击 台球 跳转到链接的话就改变html如下代码所示
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">主页</a></li>
<li><a href="#">足球</a></li>
<li><a href="#">篮球</a></li>
<li class="on"><a href="#">台球</a></li>
</ul>

CSS代码
.mainnav{ background:#292929; height:43px; margin-top:1px; margin-bottom:10px;}
.mainnav ul{}
.mainnav ul li{ float:left; display:inline;  right no-repeat; padding-right:2px;}
.mainnav ul li a{ display:inline-block; height:43px; line-height:43px; padding:0 23px; font-size:14px; color:#fff; font-weight:bold;}
.mainnav ul li a:hover{ text-decoration:none; color:#e87717;}
.mainnav ul li.on a{ color:#e87717;}

========================================================
效果就是实现点击后改变颜色。我试着用这个代码去解决
<script>$(function(){$(".mainnav ul li").eq(0).addClass("on")})</script>

我不了解JS和jquery 
请帮忙贴出下完整代码  谢谢各位了。

------解决方案--------------------

$(function() {
    var $ul = $('ul');
    $ul.delegate('li', 'click', function() {
        $ul.find('li').each(function(i, dom) {
            $(this).removeClass('on');
        });
        $(this).addClass('on');
    });
});

------解决方案--------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://img.renzhe.com/static/js/jquery-1.8.3.min.js"></script>
<title>无标题文档</title>
<style type="text/css">
.mainnav{ background:#292929; height:43px; margin-top:1px; margin-bottom:10px;}
.mainnav ul{}
.mainnav ul li{ float:left; display:inline;  right no-repeat; padding-right:2px;}
.mainnav ul li a{ display:inline-block; height:43px; line-height:43px; padding:0 23px; font-size