如何阅读复选框的状态并将其状态设置为可见?我正在尝试这样的事情,但它总是返回真实:
$('.show-check').live('click', function(e) {
e.preventDefault();
var checked = ($(this).is(':checked'));
if(checked == true){
$(this).attr('checked', true);
}
else{
$(this).attr('checked', false);
}
});
<li>
<img src="" class="show-image"/>
<span class="show-title"></span>
<input type="checkbox" class="show-check" />
</li>
答案 0 :(得分:1)
它的工作原理如下:
$('.show-check').live('click', function() {
var checked = ($(this).is(':checked'));
if(checked){
$(this).attr('checked', true);
}
else{
$(this).attr('checked', false);
}
});
我认为您无法选中该复选框,因为会阻止默认操作,即选中/取消选中该复选框
这是我的想法:
该复选框最初未选中;
单击复选框时,会触发click事件,var checked
设置为true;
因为它设置为true,所以if(checked)
块将始终执行;
但您可能想知道为什么UI上没有选中复选框。我认为这是因为你设置了e.preventDefault()
,它告诉复选框不受点击事件的默认行为的影响,即检查它;
下次再次检查时,会发生同样的事情。
答案 1 :(得分:0)
如果使用.change()事件而不是.clecked()事件,也许这会更清楚。
您说当单击复选框时,如果选中== true而不是set checked = true,那么如果您选中它,则永远不会执行false部分。如果您将其设置为false,则情况也是如此。