1

3 つのチェックボックス (#PCOF、#PCTMI、または #PCRM) のいずれかがオンになっているときにスライドして開くように設定された ID "PCsetup" を持つ div がありますが、3 つのうちの 1 つまたは 2 つが既にオンになっていて、ユーザーが別のチェックボックスをオンにすると、「PCsetup」divが実際に閉じられるため、スライドして開く前に関数を終了したいと思います。他の2つのチェックボックスがチェックされているかどうかを関数にチェックさせるにはどうすればよいですか?チェックされていない場合は、divを下にスライドさせますか? これが私がこれまでに持っているものです:

$(function() {
$("input[type=checkbox]").on('click', function(){
    if ($("#PCOF").is(':checked'))|| ($("#PCRM").is(':checked')) {
       return;
    } else if $('#PCTMI').is(':checked')){
        $("#PCsetup").slideDown("slow");
    } else { 
        $("#PCsetup").slideUp("slow");
    }
});
4

2 に答える 2

0

いくつかのこと: 1. 例の無名関数は閉じられていないため、コードは有効ではありません。2.あなたが達成しようとしていることを正確に理解するのに苦労しましたが、チェックボックスの組み合わせがチェックされている場合はdivを表示し、チェックされていない場合は非表示にしたいようです. これにより、次の結果が得られます。

$(document).ready(function() {
  $(function() {
    $('#PCOF, #PCTMI, #PCRM').on('click', function() {
      var numChecked = $('#PCOF:checked, #PCTMI:checked, #PCRM:checked').length;

      if (!numChecked) {
        $('#PCsetup:visible').slideUp('slow');
      } else {
        $('#PCsetup').slideDown('slow');
      }   
    });
  });
});

http://jsbin.com/IsutuhI/3

于 2013-08-26T00:44:47.967 に答える
0

何かのようなもの

$(function() {
    var $chks = $('#PCOF, #PCRM, #PCTMI');
    $chks.on('click', function(){
        var checked = $chks.filter(':checked').length > 0, visible = $("#PCsetup").is(':visible');
        console.log('dd', checked, visible)

        if (checked && !visible) {
            $("#PCsetup").finish().slideDown("slow");
        } else if(!checked && visible){
            $("#PCsetup").finish().slideUp("slow");
        }
    });
});

デモ:フィドル

于 2013-08-26T00:46:29.860 に答える