使用图像作为复选框占位符
Using an image as a checkbox placeholder
基本上,我试图在选中/取消选中复选框时交换图像,但我不明白为什么第二次单击图像时从未发生"取消选中"(控制台从未打印"取消选中它")。
HTML:
<div id="inventory">
<div class="nav">
<div class="categories">
<input type="checkbox" name="category" value="top">
<input type="checkbox" name="category" value="bottom">
<input type="checkbox" name="category" value="shoes">
<input type="checkbox" name="category" value="accessories">
<input type="checkbox" name="category" value="hairstyles">
<input type="checkbox" name="category" value="eyes">
<input type="checkbox" name="category" value="heads">
<input type="checkbox" name="category" value="skins">
<input type="checkbox" name="category" value="avatars">
<a href="#" class="placeholder top"></a>
<a href="#" class="placeholder bottom"></a>
<a href="#" class="placeholder shoes"></a>
<a href="#" class="placeholder accessories"></a>
<a href="#" class="placeholder hairstyles"></a>
<a href="#" class="placeholder eyes"></a>
<a href="#" class="placeholder heads"></a>
<a href="#" class="placeholder skins"></a>
<a href="#" class="placeholder avatars"></a>
</div>
</div>
</div>
JS/jQuery:
$('#inventory .nav .categories .placeholder').click(function(e){
e.preventDefault();
var category = $(this).attr('class').split(' ')[1]; //Grab second class of the clicked placeholder
var relatedCheckbox = $('#inventory .nav .categories input[value="' + category + '"]'); //find the actual related checkbox
if (relatedCheckbox.prop('checked', false)) { //if the related checkbox is unchecked...
console.log('check it!');
relatedCheckbox.attr('checked', 'checked') //check it!
} else { //if it is already checked
console.log('UNcheck it!');
relatedCheckbox.removeAttr('checked'); //uncheck it
}
})
它在您的prop()
方法中。现在您正在将checked
属性指定为false,而实际上您应该只检查是否为false。
if (!relatedCheckbox.prop('checked')) {
relatedCheckbox.prop('checked',true) // <--use this to check it
} else {
relatedCheckbox.prop('checked',false) // <-- use this to uncheck it
}
示例场景
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- Angular JS Filter-通过3个复选框进行筛选
- 如果选中了多个复选框,如何添加事件
- Javascript复选框函数:;缺少:在属性id之后"
- JavaScript-切换“;全部检查”;复选框true/false
- 如何从javascript/jquery中的复选框中获取布尔值
- 如何通过单击唯一按钮保存下拉菜单/复选框菜单选项和占位符值
- 带复选框的文本区域占位符
- 使用图像作为复选框占位符
- 通过复选框在多个元素上更改' this '占位符