我有我的代码,使用户可以在Bootstrap UI选项卡中添加和删除选项卡。我成功地做到了,是的,它运作良好。
唯一的问题是它没有对标签名称进行排序。例如,有以下标签:Tab 1
,Tab 2
,Tab 3
,Tab 4
,Tab 5
因此,当我删除Tab 2
时,Tab 3
将为Tab 2
,则Tab 4
将为Tab 3
,依此类推......
此外,当我删除标签时,活动标签会显示标签1.(请在jsfiddle中查看)
我的两个问题有什么问题吗?
JSFiddle Link: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");
});
答案 0 :(得分:3)
我刚刚写了PWideChar
来重置您的function
并更改其tabs
。主要部分是将text
存储在button html
中,并将var
和button html
作为全局变量。您可以在tabID
事件中调用此function
。
remove
<强> 强>
Complete solution in Fiddle
强>