JSFiddle - React, Tailwind, and code Playground

by Dan Daniel

HTML

<script src=" https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<div class="panel panel-success">
    <div data-toggle="collapse" data-target="#panel1" class="panel-heading collapsed">
         <h4 class="panel-title">
            <a> Panel 1 </a>
        </h4>

    </div>
    <div id="panel1" class="panel-collapse collapse">
        <div class="panel-body"></div>
    </div>
</div>
<div class="panel panel-warning">
    <div data-toggle="collapse" data-target="#panel2" class="panel-heading collapsed">
         <h4 class="panel-title">
            <a> Panel 2 </a>
        </h4>

    </div>
    <div id="panel2" class="panel-collapse collapse">
        <div class="panel-body"></div>
    </div>
</div>
<div class="panel panel-danger">
    <div data-toggle="collapse" data-target="#panel3" class="panel-heading collapsed">
         <h4 class="panel-title">
            <a> Panel 3 </a>
        </h4>

    </div>
    <div id="panel3" class="panel-collapse collapse">
        <div class="panel-body"></div>
    </div>
</div>

CSS

.panel {
    border: 1px solid black;
}

JavaScript

$(function () {
    // save open tabs in comma separated var
    var openPanels;
    if (typeof $.cookie('activePanelGroup') !== 'undefined') {

        openPanels = $.cookie('activePanelGroup').split(",");
        openPanels.forEach(function (entry) {
            $("#" + entry).addClass("in");
        });
    }

    $(".panel .panel-collapse").on('shown.bs.collapse', function () {
        var active = $(this).attr('id');
        // add to cookie when opened
        if (typeof $.cookie('activePanelGroup') !== 'undefined') {
            $.cookie('activePanelGroup', $.cookie('activePanelGroup') + ',' + active);
        } else {
            $.cookie('activePanelGroup', active);
        }
    });

    $(".panel .panel-collapse").on('hidden.bs.collapse', function () {
        var closed = $(this).attr('id');
        // delete from cookie when closed
        $.cookie('activePanelGroup', $.cookie('activePanelGroup').replace(closed, ""));
        // remove ',,' is found
        $.cookie('activePanelGroup', $.cookie('activePanelGroup').replace(",,", ""));
    });
});