Javascript 如果选中,则更改复选框的标签css类
我有隐藏的复选框。我将图像作为复选框的标签,这样当单击图像时,复选框就会被单击。我试图使它,使图像有不同的不透明性,取决于是否选中了框。以下是我的图像标签css:Javascript 如果选中,则更改复选框的标签css类,javascript,jquery,css,checkbox,this,Javascript,Jquery,Css,Checkbox,This,我有隐藏的复选框。我将图像作为复选框的标签,这样当单击图像时,复选框就会被单击。我试图使它,使图像有不同的不透明性,取决于是否选中了框。以下是我的图像标签css: .checkbox-label{ opacity: .2; } .checkbox-label:hover{ opacity: .5; } .checkbox-label-after-click{ opacity: 1; } 下面是我移动类的javascript <script> $('
.checkbox-label{
opacity: .2;
}
.checkbox-label:hover{
opacity: .5;
}
.checkbox-label-after-click{
opacity: 1;
}
下面是我移动类的javascript
<script>
$('.checkbox-label').click(function(){
var the_input = $(this).next('input');
if(the_input.checked){
$(this).addClass( "checkbox-label-after-click" );
} else {
$(this).removeClass("checkbox-label-after-click");
}
});
</script>
$('.checkbox标签')。单击(函数(){
var the_input=$(this.next('input');
如果(检查输入){
$(this).addClass(“单击后的复选框标签”);
}否则{
$(this.removeClass(“单击后的复选框标签”);
}
});
基本上,当有人点击标签时,它应该抓取下一个输入,即复选框,标签的类应该改变。我还尝试过切换addClass和removeClass方法,这使得类切换在第一次单击时就可以工作,但之后就再也不能了
以下是html:
我怎么才能让它工作呢?我猜在检查它的支票时它掉下来了。单击标签时切换类会更好
$('.checkbox-label').click(function(){
$(this).toggleClass( "checkbox-label-after-click" );
});
如果确实要检查其状态,可以执行以下操作:
$('.checkbox-label').click(function(){
var the_input = $(this).next('input');
if(the_input.prop('checked')){
$(this).addClass( "checkbox-label-after-click" );
} else {
$(this).removeClass("checkbox-label-after-click");
}
});
使用
输入.prop('checked')
查看输入是否被选中。它返回一个布尔值。我猜在检查它的选中状态时,它会掉下来。单击标签时切换类会更好
$('.checkbox-label').click(function(){
$(this).toggleClass( "checkbox-label-after-click" );
});
如果确实要检查其状态,可以执行以下操作:
$('.checkbox-label').click(function(){
var the_input = $(this).next('input');
if(the_input.prop('checked')){
$(this).addClass( "checkbox-label-after-click" );
} else {
$(this).removeClass("checkbox-label-after-click");
}
});
使用输入.prop('checked')
查看输入是否被选中。它返回一个布尔值。您可以简单地使用。您的代码不是作为工作的。\u input
是一个jQuery对象,并且它没有选中属性。可以使用获取底层DOM元素
像
按照你的代码
$('.checkbox-label').click(function(){
$(this).toggleClass( "checkbox-label-after-click", the_input.get(0).checked ); //You can also use the_input.prop('checked')
});
你可以简单地使用。您的代码不是作为工作的。\u input
是一个jQuery对象,并且它没有选中属性。可以使用获取底层DOM元素
像
按照你的代码
$('.checkbox-label').click(function(){
$(this).toggleClass( "checkbox-label-after-click", the_input.get(0).checked ); //You can also use the_input.prop('checked')
});
由于_输入
是一个jquery对象,您不能使用javascript的checked属性,您可以使用_输入[0]。checked
或use
替换此项:
if(the_input.checked){
为此:
if(the_input.prop('checked')){
由于_输入
是一个jquery对象,您不能使用javascript的checked属性,您可以使用_输入[0]。checked
或use
替换此项:
if(the_input.checked){
为此:
if(the_input.prop('checked')){
我会用纯CSS来做这件事,比如:
$('.checkbox-label').click(function(){
var the_input = $(this).next('input');
if(the_input.prop('checked')){
$(this).addClass( "checkbox-label-after-click" );
} else {
$(this).removeClass("checkbox-label-after-click");
}
});
标签{
光标:指针;
}
/*悬停标签时更改光标*/
输入[类型=复选框]{
显示:无;
}
/*隐藏丑陋的默认收音机样式*/
标签>跨度{
不透明度:0.2;
}
/*默认情况下隐藏复选标记*/
输入[类型=复选框]:选中+范围{
不透明度:1;
颜色:绿色;
}
/*选中收音机时显示复选标记*/
✓ 我看起来不错。
✓ 因为我们已经改头换面了!
✓ 如果你点击我,我有一个绿色的复选标记。
✓ 我们是一家人的对勾代码>我会使用纯CSS来实现这一点,如下所示:
$('.checkbox-label').click(function(){
var the_input = $(this).next('input');
if(the_input.prop('checked')){
$(this).addClass( "checkbox-label-after-click" );
} else {
$(this).removeClass("checkbox-label-after-click");
}
});
标签{
光标:指针;
}
/*悬停标签时更改光标*/
输入[类型=复选框]{
显示:无;
}
/*隐藏丑陋的默认收音机样式*/
标签>跨度{
不透明度:0.2;
}
/*默认情况下隐藏复选标记*/
输入[类型=复选框]:选中+范围{
不透明度:1;
颜色:绿色;
}
/*选中收音机时显示复选标记*/
✓ 我看起来不错。
✓ 因为我们已经改头换面了!
✓ 如果你点击我,我有一个绿色的复选标记。
✓ 我们是一家人的对勾代码>显示你的HTML。你可以使用toggleClass吗?我可以使用toggleClass,理论上它也会有同样的效果,但是这个类并不取决于是否检查输入,而是取决于单击标签的时间。这有点冒险。显示你的HTML。你可以使用toggleClass吗?我可以使用toggleClass,理论上它也会有同样的效果,但是这个类并不取决于是否检查输入,而是取决于单击标签的时间。风险更大一点。