Twitter Bootstrap 3.0.1 のタブ コンテンツとナビゲーション タブを使用しています。ユーザーがタブをクリックする代わりに次へをクリックできるように、タブのコンテンツに次のリンクがあり、それらの次のボタンを使用した後、正しいタブが押された状態で表示されるようにします。
リンクを取得したときに、li アクティブ クラスが追加されていないため、タブが押された状態で表示されないことに気付きました。この JavaScript を機能させるためにまとめましたが、もっと簡単な方法があると思いますか?
ドム:
<ul class="nav nav-tabs">
<li class="active"><a href="#cardType" data-toggle="tab">1) Select a package</a></li>
<li><a href="#address" data-toggle="tab">2) Address package</a></li>
<li><a href="#amount" data-toggle="tab">3) Specify Gift Amount</a></li>
<li><a href="#pay" data-toggle="tab">4) Pay</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="cardType">
<a href="#address" data-toggle="tab">Next</a>
</div>
<div class="tab-pane" id="address">
</div>
<div class="tab-pane" id="amount">
</div>
<div class="tab-pane" id="pay">
</div>
</div>
次のリンクがクリックされたときにタブを押す JavaScript は次のとおりです。
$(document).ready(function () {
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
e.target // activated tab
e.relatedTarget // previous tab
var targetTab = e.target.href.split('#')[1];
console.log(targetTab);
$(".nav-tabs a").parent().removeClass('active');
$(".nav-tabs a[href=#" + targetTab + "]").parent().addClass('active');
});
});
私も .show を使用してみましたが、それは私にとって正しいタブを押し下げません。多分私は何か間違ったことをしていますか?
$(document).ready(function () {
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
e.target // activated tab
e.relatedTarget // previous tab
var targetTab = e.target.href.split('#')[1];
$('#myTab a[href="' + targetTab + '"]').tab('show');
});
});