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. チェックボックスをクリックすると、クリック イベントが発生し、var checkedtrue に設定されます。

  3. true に設定されているため、if(checked)ブロックは常に実行されます。

  4. しかし、UI でチェックボックスがチェックされていない理由を疑問に思うかもしれません。e.preventDefault()チェックボックスをチェックするというクリックイベントのデフォルトの動作の影響を受けないようにチェックボックスを設定したためだと思います。

  5. 次にもう一度確認すると、同じことが起こります。

于 2010-11-30T02:31:38.590 に答える
0

.clecked() イベントの代わりに .change() イベントを使用した場合、これはより明確になるでしょう。

チェックボックスがクリックされたときに、checked == true を設定するよりも、checked = true を設定すると、チェックされた状態で開始すると false の部分が実行されることはありません。false に設定して開始した場合も同様です。

于 2010-11-30T02:42:56.573 に答える