响应式可折叠表一次一个:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了响应式可折叠表一次一个:相关的知识,希望对你有一定的参考价值。

第一次在stackoverflow上,所以请不要打扰我太多。

我正在处理来自codepen的现有代码,并试图找出如何使表一次扩展一个。

目前,如果我们点击多个“+”图标,它们将保持打开状态,想知道我们如何制作它,以便在点击“+​​”符号时,之前展开的项目将会关闭。

我尝试在这里调整布局无济于事:

$('.js-tdToggle').on('click', function(){
    if(window.innerWidth < 681){
        $(this).toggleClass("fa-plus-square fa-minus-square");
        var trParent = $(this).parent().parent();
        trParent.toggleClass("collapse");
    } else {
        $(this).toggleClass("fa-plus-square fa-minus-square");
        var tdParent = $(this).parent();
        tdParent.next("td").toggleClass("collapse");
    }   
});

Original Source Codepen

答案

您必须添加代码,在其他每个切换上执行相反的操作。 JQuery的.not()函数对此非常有用。通过我的更改,javascript看起来像这样:

$('.js-tdToggle').on('click', function() {
  var $otherToggles = $(".js-tdToggle.fa-minus-square");
  if (window.innerWidth < 681) {
    $(this).toggleClass("fa-plus-square fa-minus-square");
    $otherToggles.not(this).toggleClass("fa-minus-square fa-plus-square");
    var trParent = $(this).parent().parent();
    trParent.toggleClass("collapse expand");
    var $otherParents = $otherToggles.parent().parent();
    $otherParents.removeClass("expand").addClass(" collapse");
  } else {
    $(this).toggleClass("fa-plus-square fa-minus-square");
    $otherToggles.not(this).toggleClass("fa-minus-square fa-plus-square");
    var tdParent = $(this).parent();
    tdParent.next("td").toggleClass("collapse expand");
    var $otherParents = $($otherToggles).not(this).parent();
    $otherParents.next("td").toggleClass("expand collapse");
  }
});

你可以参考我的分叉笔来看它的实际效果:codepen.io

以上是关于响应式可折叠表一次一个:的主要内容,如果未能解决你的问题,请参考以下文章

当 mongodb 集合为空时,响应式可尾游标关闭

❤️使用 HTMLCSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️

❤️使用 HTMLCSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️

片段项目不会折叠

CMDB 资产采集——插件可插拔式可拓展思想

可折叠工具栏 - 使片段页脚在 Android 中始终可见