【发布时间】:2012-08-21 10:16:23
【问题描述】:
所以我知道 bootstrap 没有对 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/
【问题讨论】: