我想使用Bootstrap仅添加5个动态选项卡,使添加的选项卡处于活动状态。问题是我需要选项卡内容中的“添加联系人”(添加联系人的URL将是#cid到MYSQL查询)。第一个和第二个标签也应该是静态的。第二个标签是一个数据表视图,其中每行都有一个链接/ URL(添加联系人)以查看新标签中的内容。
http://jsfiddle.net/happysmiles/F33Av/22中提供了类似类型的示例,但出于上述目的,我无法对其进行编辑和使用。
<div class="container">
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#contact_01" data-toggle="tab">Joe Smith</a><span>x</span>
</li>
<li><a href="#contact_02" data-toggle="tab">Molly Lewis</a> <span> x </span>
</li>
<li><a href="#" class="add-contact">+ Add Contact</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="contact_01">Contact Form: Joe Smith</div>
<div class="tab-pane" id="contact_02">Contact Form: Molly Lewis</div>
</div>
</div>
jQuery
$(".nav-tabs").on("click", "a", function (e) {
e.preventDefault();
if (!$(this).hasClass('add-contact')) {
$(this).tab('show');
}
})
.on("click", "span", function () {
var anchor = $(this).siblings('a');
$(anchor.attr('href')).remove();
$(this).parent().remove();
$(".nav-tabs li").children('a').first().click();
});
$('.add-contact').click(function (e) {
e.preventDefault();
var id = $(".nav-tabs").children().length; //think about it ;)
var tabId = 'contact_' + id;
$(this).closest('li').before('<li><a href="#contact_' + id + '">New Tab</a> <span> x </span></li>');
$('.tab-content').append('<div class="tab-pane" id="' + tabId + '">Contact Form: New Contact ' + id + '</div>');
$('.nav-tabs li:nth-child(' + id + ') a').click();
});
CSS
@import url('http://getbootstrap.com/2.3.2/assets/css/bootstrap.css');
.container {
margin-top: 10px;
}
.nav-tabs > li {
position:relative;
}
.nav-tabs > li > a {
display:inline-block;
}
.nav-tabs > li > span {
display:none;
cursor:pointer;
position:absolute;
right: 6px;
top: 8px;
color: red;
}
.nav-tabs > li:hover > span {
display: inline-block;
}