Javascript 如果未检查任何内容,则折叠

Javascript 如果未检查任何内容,则折叠,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我在一个页面上有几个bootstrap4 collapse()。每个复选框都会折叠几个复选框。我的目标是有一个按钮,允许用户关闭所有没有任何复选框的手风琴 我要挑战的是: //Collapse accordions that have check boxes $('.collapse-only-checked').on('click', function(){ if ($('#accordion .collapse .item').is(':checked')) { $(

我在一个页面上有几个bootstrap4 collapse()。每个复选框都会折叠几个复选框。我的目标是有一个按钮,允许用户关闭所有没有任何复选框的手风琴

我要挑战的是:

//Collapse accordions that have check boxes
$('.collapse-only-checked').on('click', function(){
    if ($('#accordion .collapse .item').is(':checked')) {
        $('#accordion .collapse').collapse('hide');
    event.preventDefault();
    }
});
此功能关闭所有手风琴。我希望只关闭有任何输入(复选框)选中的手风琴。其他的手风琴应该开着

//基于按钮单击展开和收缩手风琴
$(文档).ready(函数(){
//全部展开
$('.expand all')。在('click',function()上{
$(#accordion.collapse').collapse('show');
event.preventDefault();
});
//全部崩溃
$('.collapse all')。在('click',function()上{
$(“#accordion.collapse”).collapse('hide');
event.preventDefault();
});
//折叠具有复选框的手风琴
$('.collapse only checked')。在('click',function()上{
if($('#accordion.collapse.item').is(':checked')){
$(“#accordion.collapse”).collapse('hide');
event.preventDefault();
}
});
});



值0 值1 值0 值1
您需要的是:

//Collapse accordions that have check boxes
$('.collapse-only-checked').on('click', function() {
  $("#accordion .collapse").each(function () {
    if ($(this).find('.item:checked').length > 0)
      $(this).collapse('hide');
  });
  event.preventDefault();
});
简单的解释是:

  • 检查每一个
    。折叠
  • 检查
    的计数:选中
    复选框
  • 如果计数大于0,则表示选中了某些复选框:
    • 折叠手风琴。
      否则
    • 什么也不做
  • 参见
    如果
    条件:

    //基于按钮单击展开和收缩手风琴
    $(文档).ready(函数(){
    //全部展开
    $('.expand all')。在('click',function()上{
    $(#accordion.collapse').collapse('show');
    event.preventDefault();
    });
    //全部崩溃
    $('.collapse all')。在('click',function()上{
    $(“#accordion.collapse”).collapse('hide');
    event.preventDefault();
    });
    //折叠具有复选框的手风琴
    $('.collapse only checked')。在('click',function()上{
    $(“#accordion.collapse”)。每个(函数(){
    if($(this).find('.item:checked')。长度>0)
    $(this.collapse('hide');
    });
    event.preventDefault();
    });
    });
    
    
    

    值0 值1 值0 值1
    您需要的是:

    //Collapse accordions that have check boxes
    $('.collapse-only-checked').on('click', function() {
      $("#accordion .collapse").each(function () {
        if ($(this).find('.item:checked').length > 0)
          $(this).collapse('hide');
      });
      event.preventDefault();
    });
    
    简单的解释是:

  • 检查每一个
    。折叠
  • 检查
    的计数:选中
    复选框
  • 如果计数大于0,则表示选中了某些复选框:
    • 折叠手风琴。
      否则
    • 什么也不做
  • 参见
    如果
    条件:

    //基于按钮单击展开和收缩手风琴
    $(文档).ready(函数(){
    //全部展开
    $('.expand all')。在('click',function()上{
    $(#accordion.collapse').collapse('show');
    event.preventDefault();
    });
    //全部崩溃
    $('.collapse all')。在('click',function()上{
    $(“#accordion.collapse”).collapse('hide');
    event.preventDefault();
    });
    //折叠具有复选框的手风琴
    $('.collapse only checked')。在('click',function()上{
    $(“#accordion.collapse”)。每个(函数(){
    if($(this).find('.item:checked')。长度>0)
    $(this.collapse('hide');
    });
    event.preventDefault();
    });
    });
    
    
    

    值0 值1 值0 值1
    您不能只使用文档中提到的
    .collapse('hide')
    。例如,如果你想关闭一页上的所有手风琴

     $.each($('.panel-collapse'), function() { 
           $(this).collapse('hide');
       });
    
    如果要进一步筛选,请将其添加到jquery中的选择器中。所以你可以用复选框或任何你想要的东西过滤掉那些。下面是一个可运行的示例,您可以单击按钮关闭所有手风琴

    $(文档).ready(函数(){
    $(“#closeAll”)。单击(函数(事件){
    $.each($('.panel collapse'),function(){
    $(this.collapse('hide');
    });
    });
    });
    
    
    关闭所有手风琴
    手风琴一号
    动物保护协会的陈词滥调,埃尼姆·埃乌斯莫德的高寿命accusamus terry richardson广告鱿鱼。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,太阳阿利夸放了一只鸟
    在它上面,鱿鱼单一来源咖啡Nalla assumenda shoreditch et.Nihil anim keffiyeh helvetica,工艺啤酒工人wes anderson cred Nescuint sapiente ea proident。纯素食主义者,屠夫副洛莫。从工艺啤酒场到餐桌,
    粗斜纹棉布美学合成器Nescuint您可能还没有听说过accusamus labore可持续VHS。
    动物保护协会的陈词滥调,埃尼姆·埃乌斯莫德的高寿命accusamus terry richardson广告鱿鱼。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食物