jquery - 在 jquery 中全部展开/折叠

标签 jquery html css

我有一堆内容选项卡,每个面板中都有展开折叠图标。由于一个一个地关闭所有展开的 div 是如此手动,因此提供了一个全部展开和全部折叠按钮来一次展开和折叠。

这按预期工作。但我需要补充的是,

在页面加载时,我需要 'collapse all' 按钮让类处于非事件状态,因为第一次加载页面时没有展开 div。

当任何 div 展开时,不活动的类应该从 'collapse all' 按钮中移除,反之亦然。

这是我的代码

//expand/collapse all
$('.expandall-icon').click(function(){
        $(this).addClass('expand-inactive');
        $('.collapseall-icon').removeClass('collapse-inactive')
        $('.inner-content').slideDown();
    });
    $('.collapseall-icon').click(function(){
        $(this).addClass('collapse-inactive');
        $('.expandall-icon').removeClass('expand-inactive');
        $('.inner-content').slideUp();
    });     

    //Collapse and expand data
    $('.inner-content').hide();
    $(".expand a").click(function (e) {
        e.preventDefault();
        $(this).parent().toggleClass('collapse');
        $(this).closest('.content').find('.inner-content').slideToggle();   
    });

DEMO


通过默认添加 inactive 类尝试使用 if else 条件,但这甚至不会删除 inactive 类尽管我正在检查展开后的 div 的状况。

    //expand/collapse all
$('.expandall-icon').click(function(){
        $(this).addClass('expand-inactive');
        $('.collapseall-icon').removeClass('collapse-inactive')
        $('.inner-content').slideDown();
    });
$('.collapseall-icon').addClass('collapse-inactive');
    $('.collapseall-icon').click(function(){
        $(this).addClass('collapse-inactive');
        $('.expandall-icon').removeClass('expand-inactive');
        $('.inner-content').slideUp();
    });     

    //Collapse and expand data
    $('.inner-content').hide();
    $(".expand a").click(function (e) {
        e.preventDefault();
        $(this).parent().toggleClass('collapse');
        $(this).closest('.content').find('.inner-content').slideToggle().toggleClass('datapanel_opend');    

      //expand all
         if(!$(this).closest('.content').find('.inner-content').hasClass("datapanel_opend"))
        {
           $('div.collapseall-icon').removeClass('collapse-inactive');
        }
        else
        {
            $('div.collapseall-icon').addClass('collapse-inactive');
        }

    });

DEMO 2

最佳答案

将以下代码添加到您的代码中。

var k = 0;
if(k == 0){
$('.collaspeall-icon').addClass('collapse-inactive');
$('.expandall-icon').removeClass('collapse-inactive');
k = 1;
}

if(k == 1){
$('.expandall-icon').addClass('collapse-inactive');
$('.collapseall-icon').removeClass('collapse-inactive');
k = 0;
}

替代方案

$('.collapseall-icon').addClass('collapse-inactive');//added when page loads.


$('.expand').click(function(){

$('.collapseall-icon').removeClass('collapse-inactive');


});

关于jquery - 在 jquery 中全部展开/折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276138/

相关文章:

css - SVG 和带有斜线的稀有特殊字符( Angular 删除线?)

c# - 加载页面后如何加载此 ASP.NET div?

jquery - 如何找到具有属性显示 :block in jQuery? 的 div 的索引

javascript - Jquery解析部分XML并将其保存在localstorage中

javascript - 参数值 `onClick` 已更改

javascript - 启用单元格的输入

javascript - 单击按钮打开一个新的 InPrivate 浏览器窗口

javascript - 如何让菜单按钮出现在导航栏 Materialize CSS 中?

html - 将 <div> 与不带宽度的显示内联或内联 block 对齐

php - 侧边栏位置错误