jQuery checkbox多次选中后失效

今天在做项目过程中使用jquery的attr属性完成一个功能及选择语音坐席的时候勾选语音及短信选项即

$("#voiceSeat").click(function(){
var isCheck=$(this).is(':checked');
if(isCheck){
    $("#voice").prop({
        "checked":true,
        "disabled":true
    });
    $("#SMS").prop({
        "checked":true,
    });
}else{
    $("#voice").prop({
        "checked":false,
        "disabled":false
    });
    $("#SMS").prop("checked":false);
    $("#soundRecord").prop("checked":false);
    $("#intelligent").prop("checked":false);
}
}) 

一开始使用的attr第二次就会失效,出现再也无法选中的情况。

到这里,问题答案找到了,就是使用 attr() 方法的问题,于是查看官方文档, 才知道从 jQuery 1.6 开始新增了一个方法 prop(),从中文意思看,两者分别是获取/设置 attributes 和 properties 的方法,在 jQuery 1.6 之前,使用 attr() 有时候会出现不一致的行为,所以才会增加 prop() 方法。
那么,什么时候使用attr(),什么时候使用prop()?

根据官方的建议:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()。

可以了解下attr与prop的区别
http://www.runoob.com/jquery/html-prop.html

你可能感兴趣的:(jQuery checkbox多次选中后失效)