Bootstrap 选项卡无法使用追加

Bootstrap tabs not working using append

我正在使用 bootstrap 模板。它有一个弹出产品模式,它附加了某些信息。我的 bootstrap 选项卡不起作用,因为它们附加到模式。

这是显示问题的 jsfiddle。第一个选项卡有效,但附加的选项卡无效。

http://jsfiddle.net/wLbLzqcv/

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)