我在ui-grid-b中有三个按钮
<div class="ui-grid-b">
<div class="ui-block-a"><button id="btnOvenA" style="width:100%" value="a">A</button></div>
<div class="ui-block-b"><button id="btnOvenB" style="width:100%" value="b">B</button></div>
<div class="ui-block-c"><button id="btnOvenC" style="width:100%" value="c">C</button></div>
</div>
每当点击一个按钮时,我想将其文本变为红色。我想把其他文字变成蓝色。我的点击事件目前看起来像这样:
$("#btnOvenA, #btnOvenB, #btnOvenC").click(function (event) {
oven += $(event.target).attr('value');
$(this).closest('div .ui-grid-b').css('color', 'blue');
$(this).css('color', 'red');
});
它不起作用。我的想法是,在点击的按钮变为红色之前,将所有按钮变为蓝色,但我不知道该怎么做。我对第三行的想法是找到与类.ui-grid-b
最接近的div,将它们全部变为蓝色,然后将我点击的那个更改为红色。
我知道一种方法是将每个按钮单独设置为蓝色,然后单击为红色,但如果有100个按钮,我希望这个工作正常,而且我不想对每一行进行手动编码。
有什么想法吗?
答案 0 :(得分:2)
您需要使用:
$(".ui-grid-b button").click(function (event) {
$(".ui-grid-b button").not(this).css('color', 'blue');
$(this).css('color', 'red');
});
<强> Working Demo 强>
答案 1 :(得分:1)
试试这个:你可以让ui-grid-b
div中的所有按钮变为蓝色,然后点击按钮变为红色
$("#btnOvenA, #btnOvenB, #btnOvenC").click(function (event) {
oven += $(event.target).attr('value');
//make all button blue first
$(this).closest('div.ui-grid-b').find('button').css('color', 'blue');
//make clicked button red
$(this).css('color', 'red');
});
<强> JSFiddle Demo 强>
答案 2 :(得分:0)
将blue
添加到所有人。将red
专门添加到点击的按钮。
$("#btnOvenA, #btnOvenB, #btnOvenC").click(function (event) {
$("[id^=btnOven]").not(this).css("color","blue");
$(this).css("color","red");
});
注意 - 不确定代码的执行情况。
FIDDLE - http://jsfiddle.net/w0gqo6hs/