Bootstrap 选项卡无法使用追加
Bootstrap tabs not working using append
我正在使用 bootstrap 模板。它有一个弹出产品模式,它附加了某些信息。我的 bootstrap 选项卡不起作用,因为它们附加到模式。
这是显示问题的 jsfiddle。第一个选项卡有效,但附加的选项卡无效。
HTML:
<div class="test">
<div role="tabpanel" id="tabs">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
<li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
<li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">A</div>
<div role="tabpanel" class="tab-pane" id="profile">B</div>
<div role="tabpanel" class="tab-pane" id="messages">C</div>
<div role="tabpanel" class="tab-pane" id="settings">D</div>
</div>
</div>
</div>
JS:
$('.test').append($('#tabs').html())
这是一个可行的解决方案:
http://jsfiddle.net/wLbLzqcv/1/
它不是很漂亮,但它突出显示了您的代码中的错误。您的 ID 不应重复。
var html = $('.test').html();
var $html = $(html);
$html.find(".tab-pane").each(function(){
var $tabPane = $(this);
$tabPane.attr("id", $tabPane.attr("id") + "newid");
})
$html.find("a[data-toggle='tab']").each(function(){
var $anchor = $(this);
$anchor.attr("href", $anchor.attr("href") + "newid");
})
$('.test').append($html)
我正在使用 bootstrap 模板。它有一个弹出产品模式,它附加了某些信息。我的 bootstrap 选项卡不起作用,因为它们附加到模式。
这是显示问题的 jsfiddle。第一个选项卡有效,但附加的选项卡无效。
HTML:
<div class="test">
<div role="tabpanel" id="tabs">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
<li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
<li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">A</div>
<div role="tabpanel" class="tab-pane" id="profile">B</div>
<div role="tabpanel" class="tab-pane" id="messages">C</div>
<div role="tabpanel" class="tab-pane" id="settings">D</div>
</div>
</div>
</div>
JS:
$('.test').append($('#tabs').html())
这是一个可行的解决方案:
http://jsfiddle.net/wLbLzqcv/1/
它不是很漂亮,但它突出显示了您的代码中的错误。您的 ID 不应重复。
var html = $('.test').html();
var $html = $(html);
$html.find(".tab-pane").each(function(){
var $tabPane = $(this);
$tabPane.attr("id", $tabPane.attr("id") + "newid");
})
$html.find("a[data-toggle='tab']").each(function(){
var $anchor = $(this);
$anchor.attr("href", $anchor.attr("href") + "newid");
})
$('.test').append($html)