したがって、jQuery UIのように、ブートストラップにはタブのコンテンツと呼ばれるajaxのデフォルトのサポートがないことを理解しています。
私はここで他の質問の助けを借りて管理し、次の解決策を考え出しました、その種の作品:
<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を見つけ、その順序を計算します
私は2つの質問があります:
1)プログラムでワークアウトしたいのはタブ#tab4が存在する場合、その場合はajaxを介してコンテンツを挿入します。私が使用しているもの:if($( "#tab" + itemNumber).length> 0)
しかし、これは逆の結果をもたらすようです-つまり、そこにある場合は、そうではないことを教えてくれます。どうしたの?- 変!
2)#tab4を持っている場合(今のところ静的に入れているとしましょう)、test.htmlのコンテンツが正常に読み込まれます(イェーイ)-しかし、私の問題は、タブを取得できないことです#tab4をアクティブにするために切り替えます。「active」クラスを適用しようとしました。また、tab()呼び出しを再適用しようとしましたが、それも機能しません。
何か案は?
前もって感謝します!
編集:ここで遊ぶためのjsfiddleがあります:http://jsfiddle.net/kneidels/wnHEF/1/