Search code examples
javascriptjquerytwitter-bootstrapbackbone.jsmarionette

bootstrap collapse not working when creating dyanmically


I am fetching my content via ajax call and creating all the collapsible panel on run time. but toggle functionality is not working in this way. I am using backbone marionette collection and item view for creating my panel-group.

I checked with static content and it works fine with static data.

I have checked few links but in my case nothing seems to work.

How to make Twitter Bootstrap Collapse work on dynamically loaded html using ajax

https://github.com/twbs/bootstrap/issues/2274

Here is my html looks like:

<div id="accordion" class="panel-group">
    <div class="panel panel-default">
        <div class="panel-heading">
            <ul class="home_nav" data-toggle="collapse" data-parent="#accordion"
                data-target="NewsMaintenanceMenu">
                ...
            </ul>
            <span class=""><i class="glyphicon glyphicon-chevron-right"></i></span>
        </div>
        <div id="NewsMaintenanceMenu" class="panel-collapse collapse">
            <div class="panel-body">
                <table class="table table-striped">
                    <tbody>
                        ....
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>

Solution

  • I have used jQuery for time being.

       $(".panel").on("click", function(e){
                  var $_target =  $(e.currentTarget);
                  var $_panelBody = $_target.find(".panel-collapse");
                  if($_panelBody){
                    $_panelBody.collapse('toggle')
                  }
            })