Bootstrap 3可折叠面板,没有id或数据

Bootstrap 3 collapsible panel without id or data

本文关键字:没有 id 数据 可折叠 Bootstrap      更新时间:2023-09-26

我需要在不使用ID或数据属性的情况下处理面板折叠行为。理想情况下,通过在父div上设置一个可以折叠其内容的"可折叠"类,点击标题就会触发折叠

这是我想写的目标HTML,用于自动处理的崩溃行为

<div class="panel-group collapse-all-but-one">
    <div class="panel panel-primary panel-collapsible>
        <div class="panel-heading">Click me to collapse</div>
        <div class="panel-body">I will collaaaaaaapse</div>
    </div>
    <div class="panel panel-warning panel-collapsible">
        <div class="panel-heading">Hey another one</div>
        <div class="panel-body">I will close when the other one opens</div>
    </div>
</div>

这是我的神奇代码(现成的东西确保了与rails/angularJS的兼容性)

var ready
ready = function(){
    $(".panel-collapsable")
    .children(".panel-heading")
        .click(function(){
            var group = $(this).parent().parent()
            if (group.hasClass("panel-group one-at-a-time")){
                group.children(".panel").children(".panel-body")
                    .collapse('hide')
            }
            $(this)
                .next('.panel-body')
                .collapse('toggle')
        })
}
$(document).ready(ready);
$(document).on('page:load', ready);

请记住添加一些引导程序类,如.collate.in或.collated,以初始化正确的行为,否则第一次单击将不会起任何作用。

<div class="panel-body collapse in">I am expanded on page load</div>
...
<div class="panel-body collapse">I am collapsed on page load</div>