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();
});

Загрузка здесь