0

誰かがこの単純な機能で私を助けてくれますか:

2 つのチェックボックスがあります。1 つは「その他」、もう 1 つは「情報」です。

ユーザーが「その他」「情報」をクリックすると、無効にして一部のコンテンツを非表示にする必要があります。「info」がチェックされている場合、「other」を有効にして追加のコンテンツを表示する必要があります。

コードは次のとおりです。

  $("#mydiv").on("click", ".docheck :checkbox", function () {
      if ($(this).is(':checked')) {
          if ($(this).prop('name') == "other") {
              $(".header").toggle()
          } else {
              $(".header").toggle()
              $('.docheck').find('input[type=checkbox]').prop('checked', false);
              $(this).prop('checked', true)
          }
      }
  });

これまでのところ、部分的に機能しています。数回クリックすると、両方のチェックボックスがオンになります。

4

1 に答える 1

0

チェックされている/チェックされていない有効/無効という意味ですか。

1つの関数で解決するには:

  1. チェックの現在の選択を保存します
  2. 状況をクリア
  3. 前にチェックされた要素に従って現在の選択/可視性を設定します

コードは改善される可能性がありますが、今のところ:

$(document).ready(function () {
    $("#mydiv").on("click", ".docheck", function () {
        wasCheck = $(this).is(':checked');
        $('.docheck').prop('checked', false);
        $(".header, .info").hide();
        if (wasCheck) {
            if ($(this).prop('name') == "other") {
                $(".header").show()
            } else {
                $(".info").show()
            }
            $(this).prop('checked', true)
        }
    });
});

フィドル: http://jsfiddle.net/TYhqZ/1

于 2013-07-07T18:31:41.813 に答える