Bootstrap 3 popover и всплывающая подсказка на одном элементе
можно использовать всплывающую подсказку и popover Bootstrap 3 на том же элементе?
У меня есть таблица и хочу показать на каждой строке (tr) всплывающую подсказку. Кроме того, я хочу показать popover, когда пользователь нажимает на строку. Оба компонента нуждаются в атрибуте переключения данных, поэтому я сомневаюсь, что это возможно.
Кто-нибудь знает, если это возможно, или есть ли способ обхода?
Ответы
Ответ 1
Вам не нужно использовать 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>
script:
$('tr').each(function() {
$(this).popover({
content : $(this).attr("popover-content"),
title : $(this).attr("popover-title")
})
$(this).tooltip({
placement : 'bottom',
title : $(this).attr("tooltip-title")
})
})
демонстрационный скрипт → http://jsfiddle.net/79fXt/
Ответ 2
Мне понадобилась как подсказка, так и popover на одном элементе. Всплывающая подсказка предназначена для информации, когда пользователь зависает, а popover - для окна подтверждения при нажатии.
В этом случае мне нужна подсказка, чтобы исчезнуть, когда появится popover. Я добавил немного кода в решение @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')
})
Ответ 3
Вы можете применить всплывающую подсказку к <tr>
и поместить все дочерние элементы <td>
. Определите атрибуты в javascript и добавьте атрибуты к соответствующему классу (в этом примере class="my-popover"
), так что вам не нужно будет выставлять 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();
});
Загрузка здесь