使用jQuery动态检查和取消选中复选框:bug?

Xav*_* C. 15 checkbox jquery

我制作了一个脚本来控制主从复选框(自动检查和取消选中).

这是我的JS:

$(document).ready(function() {

    $('#myCheck').click(function() {
        $('.myCheck').attr('checked', false);
    });
    $('.myCheck').click(function() {
        if ($('.myCheck').is(':checked')) {
            $('#myCheck').attr('checked', false);
        } else {
            $('#myCheck').attr('checked', true); // IT DOESN'T WORK, WHY ?
            alert("Checkbox Master must be checked, but it's not!");
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

这是我的HTML:

<input type="checkbox" id="myCheck" checked="checked" />&nbsp;&nbsp;Checkbox Master<br />
<input type="checkbox" class="myCheck" value="1" />&nbsp;&nbsp;Checkbox Slave 1<br />
<input type="checkbox" class="myCheck" value="1" />&nbsp;&nbsp;Checkbox Slave 2
Run Code Online (Sandbox Code Playgroud)

看看我简单的JsFiddle来理解这个问题.

编辑1:像Inser说,问题发生在jQuery 1.9.2及更高版本.jQuery 1.8.3没有更多问题.奇怪...

编辑2: Inser找到解决方案,使用.prop('checked',true)代替.attr('checked',true).看看下面的评论......

ins*_*ser 41

对新版本的jQuery使用prop方法:

$('#myCheck').prop('checked', true);
$('#myCheck').prop('checked', false);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/uQfMs/37/