Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果选中一个复选框,则结束函数_Javascript_Jquery_Function_If Statement_Return - Fatal编程技术网

Javascript 如果选中一个复选框,则结束函数

Javascript 如果选中一个复选框,则结束函数,javascript,jquery,function,if-statement,return,Javascript,Jquery,Function,If Statement,Return,我有一个div,当选中三个复选框PCOF、PCTMI或PCRM中的任何一个时,id PCsetup设置为滑动打开,但如果三个复选框中的一个或两个已经选中,并且用户选中了另一个复选框,我想在滑动打开之前结束函数,因为它实际上会关闭PCsetup div。如果其他两个复选框被选中,我如何让函数检查,如果没有选中,让div向下滑动?以下是我目前掌握的情况: $(function() { $("input[type=checkbox]").on('click', function(){ if (

我有一个div,当选中三个复选框PCOF、PCTMI或PCRM中的任何一个时,id PCsetup设置为滑动打开,但如果三个复选框中的一个或两个已经选中,并且用户选中了另一个复选框,我想在滑动打开之前结束函数,因为它实际上会关闭PCsetup 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');
      }   
    });
  });
});
差不多

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

演示:

你能在jsFiddle.net上做些什么吗?那代码在语法上是无效的。