【问题标题】:How to close a child accordion if the parent is closed?如果父级关闭,如何关闭子级手风琴?
【发布时间】:2014-12-19 05:54:01
【问题描述】:

我有以下代码用于工作的父/子手风琴 div 设置。

    <div class="accordion">
        <h3>Part 1</h3>
        <div class="accordion">
            <h3>Sub-Div1</h3>
            <div>
                <p>This is a sub-div</p>
            </div>
        </div>

        <h3>Part 2</h3>
        <div>
            <p>This is part 2</p>
        </div>
    </div>

还有脚本

<script>
        $(".accordion").accordion({
            header: "> h3",
            heightStyle: "content",
            active: false,
            collapsible: true
        });
    </script>

我的问题是,当父母关闭时如何让子手风琴关闭?

例如当手风琴的第一个选项打开并且其子项打开时,单击第二个选项会关闭第一个选项。但是当第一个再次打开时,孩子仍然是从前打开的。

提前致谢。

【问题讨论】:

标签: javascript jquery css


【解决方案1】:

您可以使用手风琴小部件的activate-函数:

 $(".accordion").accordion({
     header: "> h3",
     heightStyle: "content",
     active: false,
     collapsible: true,
     activate: function( event, ui ) {      
         if(ui.oldPanel.hasClass('accordion')){                   
             ui.oldPanel.accordion( "option", "active", false );
         }
     }
});

DEMO

参考:

active-option

activate-function

【讨论】:

  • 谨慎使用click。例如,如果您四处切换并使用空间来打开/关闭手风琴,它将无法按预期工作。这就是为什么我建议改用activate 事件
  • 是的,你是对的,我找到了一个更漂亮的解决方案。
猜你喜欢
  • 1970-01-01
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多