Bootstrap选项卡无法使用追加工作

时间:2015-01-31 11:11:24

标签: jquery twitter-bootstrap twitter-bootstrap-3

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

这是一个显示问题的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())

1 个答案:

答案 0 :(得分:1)

这是一个有效的解决方案:

http://jsfiddle.net/wLbLzqcv/1/

它并不漂亮,但它突出了您的代码出了什么问题。你的身份不应该重复。

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)