编辑这个问题不是Setting "checked" for a checkbox with jQuery?的骗局,因为这里的问题专门询问了特殊情况:“一旦用户点击在复选框上,该复选框停止响应“已检查”属性更改。“。
有一个答案(其中一个与其他答案相比较少),谈到这一点,但答案中的所有链接都完全被打破......
我正试图“出于好奇”做点什么。我正在努力做的事情毫无意义。
我成功使用JQuery来显示是否已使用警报选中或取消选中复选框。以下工作正常:
$(document).ready(function() {
$('.cb').change(function(){
if ($('.cb').is(':checked')) {
alert('changed to checked');
} else {
alert('changed to unchecked');
}
});
});
但是我无法弄清楚如何将复选框恢复到初始状态(再一次:这样做没有意义,但我想这样做。)
是否可以这样做,是否可以将复选框切换回其原始状态而不触发更改事件?
我尝试 attr 和 removeAttr 无济于事。
答案 0 :(得分:1)
在更改事件中添加:
$(this).prop('已检查',!this.checked);
答案 1 :(得分:1)
$(document).ready(function() {
$('.cb').change(function(){
if ($(this).is(':checked')) {
alert('changed to checked -> uncheck again');
$(this).attr('checked', false);
} else {
alert('changed to unchecked -> recheck');
$(this).attr('checked', true);
}
});
});
在回调函数中,您应始终使用$(this)
来访问触发元素。在您的代码中,您将始终使用类cb。