0

如何读取复选框的状态并将其状态设置为可见?我正在尝试这样的事情,但它总是返回 true:

 $('.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>
4

2 回答 2

1

它是这样工作的:

 $('.show-check').live('click', function() {


var checked = ($(this).is(':checked'));

if(checked){
   $(this).attr('checked', true);
}
else{
    $(this).attr('checked', false);
}

});

我认为您无法选中该复选框,因为默认操作被阻止,即选中/取消选中该框

这是我的想法:

  1. 该复选框最初未选中;

  2. 当您单击复选框时,会触发 click 事件,并将var checked设置为 true;

  3. 因为它设置为 true,所以该if(checked)块将始终被执行;

  4. 但您可能想知道为什么未在 UI 上选中复选框。我认为是因为您设置e.preventDefault()了 which 告诉复选框不受 click 事件默认行为的影响,即检查它;

  5. 下次你再次检查时,同样的事情会发生。

于 2010-11-30T02:31:38.590 回答
0

如果您使用 .change() 事件而不是 .clecked() 事件,这可能会更清楚。

你是说当复选框被点击时,如果checked==true而不是setchecked=true,所以如果你从checked开始,false部分将永远不会被执行。如果您从设置为 false 开始,情况也是如此。

于 2010-11-30T02:42:56.573 回答