javascriptjqueryruby-on-railstwitter-bootstrapbootstrap-sass

Bootstrap shown.bs.tab event not working


I'm using the Flexy template (using bootstrap) and I can't get the shown.bs.tab event on tab to work.

I've managed to make it work on JSFiddle.

Here is the code I use in my template that produce nothing :

<div role="tabpanel">
  <ul class="nav nav-tabs" role="tablist">
    <li class="active"><a id="tab1" href="#chart1" role="tab" data-toggle="tab">Tab 1</a></li>
    <li><a id="tab2" href="#chart2" role="tab" data-toggle="tab">Tab 2</a></li>
  </ul>
  <div class="tab-content">
    <div class="tab-pane active" id="chart1">Tab 1 Content</div>
    <div class="tab-pane" id="chart2">Tabe 2 Content</div>
  </div>
</div>

<script>
  $(function() {
    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
      alert(e.target.href);
    })
  });
</script>

What can I miss ? If I copy/paste this code on the Flexy code it doesn't work. What are the steps to understand what is wrong ? Thanks !


Solution

  • The issue was more a rails-related one.

    I ended up by removing one by one every piece of code since the issue was not there in the raw template as @KyleMit says.

    Whenever I remove the line //= require bootstrap-sprockets from my application.js file the issue disappears !

    The issue was that I was requiring both bootstrap and bootstrap-sprockets. I should have require just one of them but not both.