我遇到了jquery的问题。
我有一个ID为“#checkAll”的复选框和带有“复选框”类的复选框。 当选中ID为“checkAll”的复选框时,我想打开所有复选框, 当我选中ID为“checkAll”的复选框时,我想关闭所有复选框。
但是,现在的情况是,当我第一次点击复选框(#checkAll)时,所有其他复选框都会打开,当我第一次打开ckeckbox(#checkAll)时,所有其他复选框也会被关闭。
但是,当我第二次尝试单击复选框(#checkAll)时,所有其他复选框都没有打开。
我不知道为什么会这样。
请帮帮我!
这是我的javascript处理事件。
ADMIN.event = (function() {
function _init(){
$(function(){
var checkAll = $('#checkAll'),
checkboxes = $('.checkboxes');
checkAll.click(function(){
if($(this).is(':checked')){
checkboxes.attr('checked', 'checked');
} else {
checkboxes.removeAttr('checked');
}
})
});
}
_init();
}());
这是我在php中的视图文件。
<table class="fullTable">
<tr class="listTableTr">
<th class="listTableTh tinyTh"><input type="checkbox" name="" id="checkAll" /></th>
<th id="articleTitleTh" class="listTableTh">title</th>
</tr>
<?php foreach($postData as $post): ?>
<td class="listTableTd"><input type="checkbox" name="" class="checkboxes" /></td>
<td class="listTableTd"><a href="<?php echo 'index.php?r=admin/post/edit&post='.$post['id']; ?>"><?php echo $post['title'];?></a></td>
<?php endforeach; ?>
</table>
答案 0 :(得分:3)
尝试.prop()
喜欢
checkAll.click(function(){
checkboxes.prop('checked',this.checked);
});
即使使用.on()
checkAll.on('click' , function(){
checkboxes.prop('checked',this.checked);
});
答案 1 :(得分:1)
试试这个:
$('#checkAll').on('click',function(){
if($("#checkAll").is(':checked')) {
$('.checkboxes').attr('checked',true);
} else {
$('.checkboxes').attr('checked',false);
}
});
答案 2 :(得分:1)
<强> DEMO
试试这个
$("#checkAll").click(function () {
if ($(this).is(":checked"))
$(".checkboxes").prop("checked","checked");
else
$(".checkboxes").prop("checked",false);
});