【发布时间】:2013-05-27 23:50:28
【问题描述】:
在 Bootstrap 的 Popover 中使用时,Bootstrap 的选项卡似乎对我不起作用。
接下来会发生什么:
1. Popover opens
2. Active tab on click changes
3. Tab content is not changing <-- PROBLEM
标签已正确创建,如果您在弹出框之外尝试它们,它们可以正常工作。
<a class="btn" id="btnPopover" href="#">Launch Popover</a>
<div class="tabbable hide" id="popoverContent">
<ul class="nav nav-tabs">
<li class="tab active"><a href="#tab1" data-toggle="tab">Tab 1</a></li>
<li class="tab"><a href="#tab2" data-toggle="tab">Tab 2</a></li>
<li class="tab"><a href="#tab3" data-toggle="tab">Tab 3</a></li>
</ul>
<div class="tab-content" style="padding-top: 15px">
<div class="tab-pane active" id="tab1">Tab Content 1</div>
<div class="tab-pane" id="tab2">Tab Content 2</div>
<div class="tab-pane" id="tab3">Tab Content 3</div>
</div>
$(function () {
$("#btnPopover").popover({
html: true,
trigger: 'click',
title: "Title",
placement: "bottom",
content: $("#popoverContent").html()
});
});
在这种情况下,bootstrap 似乎会发生复制元素。我计划在内容选项卡中的元素上使用更多的 javascript 库和插件,这几乎是不可能的,除非有人提供了可靠的解决方法。老实说,我认为这是一个有效的 Bootstrap 错误。
jsfiddle 演示:http://jsfiddle.net/iboros/nCfBf/
【问题讨论】:
-
复制元素的不是 Bootstrap。它将
content选项记录为标记(或由函数产生的标记)。它不直接支持使用页面中已有的元素。您的代码通过使用现有的 DOM 元素复制元素,获取它们的html,并将其提供给 Bootstrap 以用于内容。解决方案非常简单:只需删除您复制的元素(如@PSL 所示)。
标签: javascript jquery twitter-bootstrap tabs popover