I'm making an accordion using Bootstrap that I'd like to dynamically add panels to. I have that part working. see this fiddle
I can add panels on the fly and the accordion functions correctly (when you click one panel, it collapses and also closes any previously opened panel)
I would like to add an additional function that upon adding new panels, the expandLast() function opens the last added panel automatically (which in result should close the previously opened panels). But it not only doesn't do that, it also breaks the accordion functionality; all panels remain open unless they're clicked on again. see the code below:
var count = 1;
$('#myBtn').click(function() {
var parent = document.getElementById("accordion");
var wrapper = document.createElement('div');
wrapper.className = "panel panel-default";
var title = document.createElement('div');
title.className = "panel-heading";
title.setAttribute("id", "cartItemTitle");
title.setAttribute("data-toggle", "collapse");
title.setAttribute("data-target", "#collapsible-" + count);
title.setAttribute("data-parent", "#accordion");
title.innerHTML = "panel: " + count;
var body = document.createElement('div');
body.setAttribute("id", "collapsible-" + count);
body.className = "panel-collapse collapse";
//body.className="panel-body";
body.innerHTML = "Lorem ipsum dolor sit amet, habeo novum possim in duo, solet aperiam postulant at eam. Te dolore ullamcorper vim. Semper officiis ad vix. Maluisset aliquando consectetuer ne pro. Mollis docendi at mei, errem dolorem voluptaria sed ea.";
wrapper.appendChild(title);
wrapper.appendChild(body);
parent.appendChild(wrapper);
count = count + 1;
expandLast();
});
function expandLast()
{
var allItems=document.getElementsByClassName("collapse");
var lastItem=allItems[allItems.length-1];
var lastItemSelector="#"+lastItem.getAttribute("id");
$(lastItemSelector).collapse();
}
any idea what's causing this? -Thanks