我正在尝试在点击它时更改按钮的类。为什么不是我的工作: 见我的fiddle
HTML:
<button id="repeatMon" onclick="changeStyle()"><span> Mon </span></button>
<br/>
<button id="repeatTues" data-bind="checked: repeatTues" onclick="changeStyle()"><span> Tues </span></button>
<br/>
<button id="repeatWeds" data-bind="checked: repeatWeds" onclick="changeStyle()"><span> Weds </span></button>
<br/>
<button id="repeatThurs" data-bind="checked: repeatThurs" onclick="changeStyle()"><span> Thurs </span></button>
<br/>
<button id="repeatFri" data-bind="checked: repeatFri" onclick="changeStyle()"><span> Fri </span></button>
<br/>
<button id="repeatSat" data-bind="checked: repeatSat" onclick="changeStyle()"><span> Sat </span></button>
<br/>
<button id="repeatSun" data-bind="checked: repeatSun" onclick="changeStyle()"><span> Sun </span></button>
<br/>
CSS:
button{
width: 60px;
height: 35px;
border-radius: 0px;
color: #cfcfcf;
background: #0a4a58;
}
.active{
color: #fff;
background: ##02AEFF;
}
jQuery的:
function changeStyle(){
$(this).toggleClass('active');
}
谢谢你!
答案 0 :(得分:5)
你正在使用jQuery,删除内联JS并以正确的方式执行:
$('[id^="repeat"]').on('click', function() {
$(this).toggleClass('active');
});
要在一个按钮上切换活动状态:
$('[id^="repeat"]').on('click', function() {
$(this).toggleClass('active').siblings().removeClass('active');
});
答案 1 :(得分:4)
<button id="repeatSun" data-bind="checked: repeatSun" onclick="changeStyle(this)"><span> Sun </span></button>
function changeStyle(btn){
$(btn).toggleClass('active');
}
或者,更好的方法是使用jQuery添加click event handlers。
将相同的类添加到所有按钮,并将click事件处理程序应用于该类:
<button id="repeatSun" data-bind="checked: repeatSun" class="changestyle"><span> Sun </span></button>
$(".changestyle").click(function(){
$(".changestyle").removeClass('active');
$(this).addClass('active');
});
答案 2 :(得分:2)
您正在使用jquery,因此您不必重复自己。从按钮中删除onclick
并使用jquery
<button id="repeatMon"><span> Mon </span></button> <br/>
<button id="repeatTues" data-bind="checked: repeatTues"><span> Tues </span></button><br/>
<button id="repeatWeds" data-bind="checked: repeatWeds"><span> Weds </span></button><br/>
<button id="repeatThurs" data-bind="checked: repeatThurs"><span> Thurs </span></button><br/>
<button id="repeatFri" data-bind="checked: repeatFri"><span> Fri </span></button><br/>
<button id="repeatSat" data-bind="checked: repeatSat"><span> Sat </span></button><br/>
<button id="repeatSun" data-bind="checked: repeatSun"><span> Sun </span></button><br/>
从类活动
中的css中删除颜色中的额外哈希(#).active {
color: #fff;
background: #02AEFF;
}
并编写脚本
$(function() {
var buttons = $('button[id^="repeat"]');
buttons.click(function() {
buttons.removeClass('active');
$(this).addClass('active');
});
});
答案 3 :(得分:1)
您需要传递按钮。
function changeStyle(e){
$(e).toggleClass('active');
}
在HTML中:
<button id="repeatSun" data-bind="checked: repeatSun" onclick="changeStyle(this)"><span> Sun </span></button>
答案 4 :(得分:1)
这样的事情:
$("button").click(function () {
$(this).toggleClass('active');
});
编辑:一次只有一个按钮。
$("button").click(function () {
$( "button" ).each(function() {
$(this).removeClass("active");
});
$(this).toggleClass('active');
});
答案 5 :(得分:1)
试试这个:
<button id="repeatMon" class="clickable"><span> Mon </span></button>
在document.ready()
中的Jquery$('.clickable').click(function(){
$(this).toggleClass('active');
});