首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不同颜色的Javascript活动状态

问具有不同颜色的Javascript活动状态
EN

Stack Overflow用户
提问于 2013-04-01 14:56:44
回答 1查看 82关注 0票数 0

我想为选中的状态制作一个具有三种不同颜色的导航菜单-每个菜单项一种。

我到处都找过了,但我只找到了这个代码,只有一个被选中的状态。

这是我的代码:

代码语言:javascript
复制
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<style type="text/css">
 .one{
   background-color:none;
   color:black;
}
  .one_active a {
      color:red;
}
  .two_active a {
      color:yellow;
}
  .three_active a {
      color:#e3e3e3;
}

</style>
<script type="text/javascript">
    var divSelected = null;
    function SelectOrUnSelect(a) {
        if (divSelected != null) divSelected.className = 'one';
        divSelected = document.getElementById(a);
        document.getElementById(a).className = 'one_active';
    }   
</script>

</head>
<body>
 <ul>
  <li class="one" id="t1"><a href="#1" onclick="SelectOrUnSelect('t1')">one</a></li>
  <li class="two" id="t2"><a href="#2" onclick="SelectOrUnSelect('t2')">two</a></li>
  <li class="three" id="t3"><a href="#3" onclick="SelectOrUnSelect('t3')">three</a></li>

 </ul>
</body>
</html>
EN

回答 1

Stack Overflow用户

发布于 2013-04-01 15:44:42

这可能是您想要的,请参阅演示。

代码语言:javascript
复制
var items = document.getElementsByTagName('li');

for(var i = 0;i < items.length;i++){
    items[i].onclick = function(){
        var siblings = this.parentNode.childNodes;
        for(var j = 0;j < siblings.length;j++){
            if(siblings[j].selected){
                siblings[j].className =  siblings[j].className.replace('_active', '');
                siblings[j].selected = false;
            }
        }
        this.className = this.className + '_active';
        this.selected = true;
    }
}

演示:http://jsfiddle.net/louisbros/H4zwj/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15739031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档