我已经找到了很多这方面的例子,但没有一个与我在一个金块中尝试做的完全相同。我需要更改复选框或收音机的标签(标签必须缠绕在我的花式输入的输入上),具体取决于是否选中了复选框或收音机。"其中一些输入将在到达表格时进行检查,因此如果选中,则需要在抵达时显示。
它现在正在使用复选框,但是如何在不破坏它的情况下将混音按钮添加到混音中?感谢帮助!
这是我的HTML / CSS:
<style type="text/css">
.c_on {color: #F0F;}
.r_on {color: #0F0;}
</style>
<fieldset class="checkboxes">
<label for="chk1"><input type="checkbox" id="chk1" />chk1</label><br />
<label for="chk2"><input type="checkbox" id="chk2" checked="checked" />chk2</label>
</fieldset>
<fieldset class="radios">
<label for="rdo1"><input type="radio" name="group1" id="rdo1" />rdo1</label><br />
<label for="rdo2"><input type="radio" name="group1" id="rdo2" checked="checked" />rdo2</label>
</fieldset>
这是我的jQuery:
$(document).ready(function() {
/* Turn checkbox class on */
var checkOn = 'c_on'
function toggleLabelClass(input){
var $input = $(input);
if ($input.is('[type="checkbox"]:checked')){
$input.parent('label').addClass(checkOn);
}else{
$input.parent('label').removeClass(checkOn)
}
}
$(function() {
$('input[type="checkbox"]').each(function(){
toggleLabelClass(this);
$(this).click(function(evt){
toggleLabelClass(evt.target);
});
});
});
});
答案 0 :(得分:1)
也许这样的事情会起作用:
$(function() {
var inputOn = 'c_on',
radioOn = 'r_on',
elms=$('input[type="checkbox"], input[type="radio"]');
function setLabelClass() {
elms.each(function(i,e) {
$(e).parent('label')[e.checked?'addClass':'removeClass']($(e).is(':radio')?radioOn:inputOn);
});
}
elms.on('change', setLabelClass);
setLabelClass();
});
答案 1 :(得分:0)
您需要向each()
循环添加无线电输入,并对toggleLabelClass()
功能进行一些更改。这是你需要的:http://jsfiddle.net/zjc9e/
我不确定你打破混音是什么意思。你不想改变代码的任何部分吗?