无线电切换按钮升级功能

时间:2013-11-08 15:29:56

标签: javascript jquery

问题:我想在单选按钮上进行三向切换。

示例:所有灰色开始,首先单击按钮1将其更改为绿色,第二次单击相同按钮1,将其更改为桃,任何后续单击将在这两个状态之间循环。单击任何其他按钮会将其重置回原始状态。

我有三个收音机类型切换按钮。只有一个按钮可以选择收音机等时间。 此外,如果再次单击任何选定的按钮,它将取消选中。我想在此添加更多内容。

我想要这样的事情:

最初按钮是灰色的。

如果单击任何按钮,该按钮将从绿色变为灰色。再次单击该选定按钮将变为灰色。

但是我最初想要的所有按钮都会保持灰色但是如果我先点击任何一个它会变成绿色并再次点击相同的按钮会产生另一种颜色(可以是任何颜色) 。再次单击相同的按钮将返回绿色并将继续..但如果我单击到另一个按钮上一个按钮将更改为灰色和当前按钮可以执行相同的操作。

这是我的一个大学项目的要求。但是没办法做到这一点。

应该保持目前的功能。希望我清楚这些要求。如果可以做到这对我来说会很棒。

这是当前示例的链接:JS Fiddle

HTML:

<div style="margin:0px auto; margin-top:100px; width:960px;">
    <a href="#">
        <span class="toggleButtonRadio normal">toggle Radio button</span>
    </a>


    <a href="#">
        <span class="toggleButtonRadio normal">toggle Radio button</span>
    </a>


    <a href="#">
        <span class="toggleButtonRadio normal">toggle Radio button</span>
    </a>
</div>

CSS

* {
 margin: 0;
 padding: 0;
 border: 0px;
}

body {
 background: #fafafa;
 font-family: Helvetica, Arial, sans-serif;
 font-size: 0.813em;
 color:#333333;


}

a {color:#737373;text-decoration:none;
}

a:link { text-decoration: none;outline: none;
}

a:visited {text-decoration: none;
}

a:hover {color:#454545;
}

a:active {text-decoration: none;
}

ul {list-style: none; text-decoration: none;
}

ol {list-style-position: inside; color:#333333;padding:12px 10px 25px 15px;font-size: 1.07em;}
ol, li {padding-bottom:8px;}

img {}
em {color: #737373; font-weight:300;}

h1 {color: #737378; margin:20px 5px 20px 0px; font-size:2.4em; text-transform:uppercase;letter-spacing:1px; font-weight:100; text-shadow:1px 1px 1px #fff; }
h2 {color: #454545; margin:10px 5px 0px 0px;}
h3 {color: #454545; margin:10px 5px 0px 0px;}
h4 {color: #454545; margin:10px 5px 20px 0px; font-size:1.2em; width:98%; border-bottom:1px solid #eee;padding-bottom:10px;}
h5 {color: #454545; margin:10px 5px 0px 0px;}
h6 {color: #454545; margin:10px 5px 0px 0px;}

p { color:#333; font-size:1.154em; margin:5px 10px 10px 0px; padding-bottom:10px;line-height:140%;}

hr { border: 0; clear: both; display: block; width: 100%; background-color: #bbbbbb; height: 1px; margin: 5px 0px;
}

select {
 color: #454545;
}

.toggleButtonRadio , .toggleButton {
 background: #e1e1e1; 
 text-decoration: none;
 text-align: center;
 font-family: Helvetica, Arial, sans-serif;
 font-size: .769em;
 font-weight: 900;
 color: #454545;
 text-transform: uppercase;
 text-decoration: none;
 padding: 5px 10px;
 -webkit-border-radius: 15px;
 border-radius: 15px;
 -webkit-box-shadow: 0px 0px 3px 0px rgba(64, 64, 64, .5);
box-shadow: 0px 0px 3px 0px rgba(64, 64, 64, .5);
}

.toggleButtonRadio:hover, .toggleButton:hover{
 background:#d4d4d4;
}

.toggleButtonRadio.active , .toggleButton.active{
background:#90bf00;
color:#fff;
}

.active:hover{
background:#7ca600;
}

.active2{

    background:#fcc79a;
}

JS

$('.toggleButtonRadio').click(function(){
    $('.toggleButtonRadio').not(this).removeClass("active");        
    $(this).toggleClass("active");


    });

1 个答案:

答案 0 :(得分:1)

我认为这是你想要实现的目标?

您希望SECOND点击按钮激活SECOND活动课程吗?

$('.toggleButtonRadio').click(function () {
    if ($(this).hasClass("normal")) {
        $(this).addClass("active");
        $(this).removeClass("normal");
    } else if ($(this).hasClass("active")) {
        $(this).addClass("active2");
        $(this).removeClass("active");
    } else if ($(this).hasClass("active2")) {
        $(this).addClass("active");
        $(this).removeClass("active2");
    }

    $('.toggleButtonRadio').not(this).removeClass("active");
    $('.toggleButtonRadio').not(this).removeClass("active2");
    $('.toggleButtonRadio').not(this).addClass("normal");
});

http://jsfiddle.net/Mutmatt/HPC5y/