I'm trying to make my accordion dynamical in my html template and I don't know how I can do that.
My html template is good, but I don't know how I can add javascript part in order to open/close subpanels with variable {{category}} as primary panel.
This is my HTML code :
{% for category in category_list %}
<div class="panel-group accordion" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<i class="more-less glyphicon glyphicon-plus"></i>
{{ category }}
</a>
</h4>
</div>
{% for publication in category.publication.all %}
<div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="accordion">
<div class="panel-body">
{{ publication }}
</div>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
I'm pretty new with Javascript and I made something like that, but it doesn't work :
function toggleIcon(e) {
$(e.target)
.prev('.panel-heading')
.find(".more-less")
.toggleClass('glyphicon-plus glyphicon-minus');
}
$('.panel-group').on('hidden.bs.collapse', toggleIcon);
$('.panel-group').on('shown.bs.collapse', toggleIcon);
I don't know why, but it opens only the first accordion panel, even if I click over the second one or the third one ..
