如果选中一个复选框,则结束功能

If one checkbox is checked, end function

本文关键字:复选框 结束 功能 一个 如果      更新时间:2023-09-26

我有一个id为"PCetup"的div,当选中三个复选框(#PCOF、#PCTMI或#PCRM)中的任何一个时,它被设置为滑动打开,但如果已经选中了其中的一个或两个,并且用户选中了另一个复选框,我想在它滑动打开之前结束该功能,因为它实际上会关闭"PCetup"div。如果其他两个复选框被选中,我怎么能让函数检查呢?如果没有,让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");
    }
});

有几件事: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

类似的东西

$(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");
        }
    });
});

演示:Fiddle