所以我知道引导程序没有对 ajax 的默认支持,称为选项卡的内容,就像 jQuery UI 那样。
我在这里的其他问题的帮助下设法提出了以下解决方案,这种方法很有效:
<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>
这似乎完美地工作 - 它找到了锚的目标 href,并计算出
我有两个问题:
1)我想以编程方式解决选项卡#tab4是否存在,如果存在 - 然后通过ajax插入内容。我正在使用: if ($("#tab"+itemNumber).length > 0)
但这似乎给出了相反的结果 - 即,如果它在那里,它告诉我它不是。那是怎么回事?- 诡异的!
和 2)如果我有我确实有切换以使#tab4 成为活动的。我尝试过应用“活动”类,也尝试过重新应用 tab() 调用,但这也不起作用。
有任何想法吗?
提前致谢!
编辑:这是一个 jsfiddle 玩:http: //jsfiddle.net/kneidels/wnHEF/1/