1
私はユーザーがBootstrap UIタブでタブを追加したり削除したりできるようにするコードを持っています。私は成功裏にそれを作った、そしてはい、それはうまくいきます。jQueryブートストラップ動的タブ(追加と削除)
唯一の問題は、タブ名をソートしないことです。例えば、このようなタブがあります:私はTab 2
を削除するとTab 1
、Tab 2
、Tab 3
、Tab 4
、Tab 5
だから、Tab 3
はTab 2
なり、ときに私その後、Tab 4
はまたようにTab 3
と...
になりますタブを削除すると、アクティブなタブにタブ1が表示されます(jsfiddleで確認してください)
私の2つの問題はありますか?
JSFiddleリンク:https://jsfiddle.net/cnycmLq0/
<div class="container">
<div class="row">
<div class="col-md-12">
<p>
<button id="btn-add-tab" type="button" class="btn btn-primary pull-right">Add Tab</button>
</p>
<!-- Nav tabs -->
<ul id="tab-list" class="nav nav-tabs" role="tablist">
<li class="active"><a href="#tab1" role="tab" data-toggle="tab">Tab 1</a></li>
</ul>
<!-- Tab panes -->
<div id="tab-content" class="tab-content">
<div class="tab-pane fade in active" id="tab1">Tab 1 content</div>
</div>
</div>
</div>
</div>
JS:
$(document).ready(function() {
var tabID = 1;
$('#btn-add-tab').click(function() {
tabID++;
$('#tab-list').append($('<li><a href="#tab' + tabID + '" role="tab" data-toggle="tab">Tab ' + tabID + '<button class="close" type="button" title="Remove this page">×</button></a></li>'));
$('#tab-content').append($('<div class="tab-pane fade" id="tab' + tabID + '">Tab ' + tabID + ' content</div>'));
});
$('#tab-list').on('click', '.close', function() {
var tabID = $(this).parents('a').attr('href');
$(this).parents('li').remove();
$(tabID).remove();
//display first tab
var tabFirst = $('#tab-list a:first');
tabFirst.tab('show');
});
var list = document.getElementById("tab-list");
});
ことをありがとう!できます。しかし、私はあなたのコードに間違って何かを見た。たとえば、3つのタブを追加します。その後、Tab 2を削除してTab 3をTab 2にします。しかし、Tab 2(古いTab 3)がアクティブな場合、Tab 3の内容が表示されます。また、タブが削除されたときに前のタブに移動するにはどうすればよいですか?最初のタブに移動しますか? – Jacob
これは正しいと思います。あなたが 'tab2'を削除していると実際には内容が必要ないので..' tab3'は基本的に 'tab2'の代わりに実際の' tab'であり、その内容は有効です。 .. –
これを見てください:https://jsfiddle.net/cnycmLq0/4/私はそれを更新し、内容を修正しました。しかし、最後のタブを削除すると、その内容は表示されません。私を助けてくれますか? – Jacob