【发布时间】:2014-07-29 05:01:58
【问题描述】:
是否可以在同一个元素上使用 Bootstrap 3 的工具提示和弹出框?
我有一个表格,想在每一行 (tr) 上显示一个工具提示。此外,我想在用户单击该行时显示一个弹出框。两个组件都需要 data-toggle 属性,所以我怀疑是否可以这样做。
有人知道这是否可行或是否有解决方法吗?
【问题讨论】:
标签: twitter-bootstrap twitter-bootstrap-3 tooltip popover
是否可以在同一个元素上使用 Bootstrap 3 的工具提示和弹出框?
我有一个表格,想在每一行 (tr) 上显示一个工具提示。此外,我想在用户单击该行时显示一个弹出框。两个组件都需要 data-toggle 属性,所以我怀疑是否可以这样做。
有人知道这是否可行或是否有解决方法吗?
【问题讨论】:
标签: twitter-bootstrap twitter-bootstrap-3 tooltip popover
你没有有使用data-toggle、title等等。手动调用引导插件。看这个例子:
<table>
<tr tooltip-title="Tooltip title #1"
popover-title="popover title #1"
popover-content="popover content #1">
<td>qwerty</td><td>qwerty</td><td>qwerty</td><td>qwerty</td>
</tr>
<tr tooltip-title="Tooltip title #2"
popover-title="popover title #2"
popover-content="popover content #2">
<td>qwerty</td><td>qwerty</td><td>qwerty</td><td>qwerty</td>
</tr>
</table>
脚本:
$('tr').each(function() {
$(this).popover({
content : $(this).attr("popover-content"),
title : $(this).attr("popover-title")
})
$(this).tooltip({
placement : 'bottom',
title : $(this).attr("tooltip-title")
})
})
demo fiddle -> http://jsfiddle.net/79fXt/
【讨论】:
我需要在同一个元素上同时使用工具提示和弹出框。工具提示是用户悬停时的信息,弹出框是用户单击时的确认框。
在这种情况下,我需要工具提示在弹出框出现时消失。我在@davidkonrad 的解决方案中添加了一些代码,如下所示:
$(this).popover({
content : $(this).attr("popover-content"),
title : $(this).attr("popover-title")
}).tooltip({
placement : 'bottom',
title : $(this).attr("tooltip-title")
}).on('show.bs.popover', function() {
$(this).tooltip('hide')
})
【讨论】:
您可以将工具提示应用于<tr>,并将弹出框应用于所有子<td>。在 javascript 中定义属性并将属性附加到相关类(在此示例中为 class="my-popover"),这样您就不必多次写出弹出框。
例如:
查看:
<table class="table">
<thead>
<tr>
<th>#</th>
<th>First Name</th>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr data-toggle="tooltip" title="This tooltip is on top!">
<td class="my-popover">1</td>
<td class="my-popover">Mark</td>
<td class="my-popover">Otto</td>
<td class="my-popover">@mdo</td>
</tr>
<tr>
<td>2</td>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<td>3</td>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Javascript:
$( document ).ready(function() {
$(".my-popover").attr({"data-toggle":"popover", "data-container":"body", "data-placement":"bottom", "data-content":"My popover content", "data-original-title":"Popover title"});
$("[data-toggle=tooltip]").tooltip();
$("[data-toggle=popover]").popover();
});
【讨论】: