so i understand bootstrap doesnt have default support for ajax called content for tabs, as jQuery UI does.
i have managed with the helps of other questions here, to come up with the following solution, that kind of works:
<div class="tabbable">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#tab1"> tab 1</a></li>
<li><a data-toggle="tab" href="#tab2">tab 2</a></li>
<li><a data-toggle="tab" href="#tab3">tab 3</a></li>
<li><a data-toggle="tab" class="ajax" href="test.html">tab 4 - ajax</a></li>
</ul>
<div class="tab-content">
<div id="tab1" class="tab-pane active"> tab 1 content </div>
<div id="tab2" class="tab-pane"> tab 2 content </div>
<div id="tab3" class="tab-pane"> tab 3 content </div>
</div>
</div>
JS:
<script type="text/javascript">
$(function() {
$('.ajax').click(function (e) {
var thisTab = e.target // activated tab
var pageTarget = $(thisTab).attr('href');
//get number of li in list of tabs:
var itemNumber = $(this).parent().index()+1;
$("#tab"+itemNumber).load(pageTarget);
});
});
</script>
this seems to work perfectly - it finds the destination href of the anchor, and it works out the order of the
i have 2 questions:
1) i want to work out programatically is tab #tab4 exists, and if so - then insert the content via ajax. i am using: if ($("#tab"+itemNumber).length > 0)
but this seems to give the opposite result - ie, if it is there, it tells me its not. whats up with that? - weird!
and 2) if i have i do have #tab4 (lets say i have put it in statically for now), then the content from test.html is loaded in successfully (yay) - but my issue is that now i cant get the tabs to switch to make #tab4 the active one. I have tried applying the "active" class, and have also tried reapplying the tab() call, but that also doesnt work.
any ideas?
thanks in advance!
EDIT: here is a jsfiddle to play with: http://jsfiddle.net/kneidels/wnHEF/1/