3

私が書いた次のコードには、チェックボックスの行があるはずであり、選択すると、そのチェックボックスのラベルが別のdivに表示されます。

     <div class="span3" id="bill">
          <label class="checkbox">
            <input type="checkbox" value="" id="item1" checked="checked">
            Item1 - Price
          </label>
          <label class="checkbox">
            <input type="checkbox" value="" id="item2" checked="checked">
            Item2 - Price
          </label>
        </div>
        <div class="span3" id="currBill">
          <label id="item1_lb">
            Item1 - Price
          </label>
          <label id="item2_lb">
            Item2 - Price
          </label>
        </div>
      </div>
      <div class="row-fluid">
        <button class="btn" id="pay">Pay</button>
      </div>

次のjsは、選択/選択解除されたときにラベルを表示します(わかりにくいですが、すべてのチェックボックスは後でデータベースから入力されます。これは、私の問題の一般的な考え方のコードを保持する場所です)。

2つの関数はどちらも機能していないようです。クリック機能は少なくともトリガーされますが、実際には何も非表示になりません。何か案は?

$(function() {
  $('input:checkbox').bind('change',(function() {
    $('#'+ithis.id+'_lb').toggle($(this).is(':checked'));
  });

  $("#pay").click(function() {
    $("#bill input[type=checkbox]").each(function() {
      if($(this).checked)
      {
        $(this).parent().hide();
        $(this).checked = false;
      }
    });
  });
});
4

2 に答える 2

2

$(this).checkedjQuery コレクション属性へのアクセスを試みますchecked.propメソッドを介して要素のプロパティを変更できます。

if ($(this).prop('checked')) {
    ...
    $(this).prop('checked', false);
于 2013-02-23T00:11:14.653 に答える
1

エラーを確認するには、ブラウザ コンソールを使用する必要があります ( を押しCtrl+Shift+Jます)。次のエラーがあります。

  • 2 行目で、キーワード('change',(function()の前の括弧を削除します。function
  • ithis.idする必要がありますthis.id
  • 代わりに、チェックif($(this).checked)は最初に行ったようにする必要があります。if($(this).is(':checked'))
  • チェックボックスの選択を解除するには$(this).prop('checked', false);

ここでフィドル: http://jsfiddle.net/qKPGd/

于 2013-02-23T00:25:24.417 に答える