Как показать всплывающее окно при нажатии?

#jquery #html #css #twitter-bootstrap

#jquery #HTML #css #twitter-bootstrap

Вопрос:

В настоящее время я работаю в версии Siwapp 0.5 и пытаюсь отобразить всплывающее окно для кнопки платежей в каждой строке таблицы счетов. Но я должен сделать это одним щелчком мыши. У меня есть следующий JS-код:

 jQuery(function($){

  $('table[data-type="invoices"] a.payments').popover({
    live: true,
    placement: 'left',
    offset: 5,
    html: true,
    content: function() {
      return $(this).attr('class');
    },
    trigger: 'manual'
  }).live('click', function(e){
    e.preventDefault();
    $(this).popover('show');
  });

});
 

Таблица HTML выглядит следующим образом (см. Ссылку в конце):

 <table class="zebra-striped align-middle" data-type="invoices">
  <colgroup>
    <col />
    <col />
    <col class="date" />
    <col class="date" />
    <col class="status" />
    <col class="currency" />
    <col class="currency" />
    <col class="payments" />
  </colgroup>
  <thead>
    <tr>
      <th>{% trans %}Number{% endtrans %}</th>
      <th>{% trans %}Customer{% endtrans %}</th>
      <th>{% trans %}Date{% endtrans %}</th>
      <th>{% trans %}Due Date{% endtrans %}</th>
      <th>{% trans %}Status{% endtrans %}</th>
      <th>{% trans %}Due{% endtrans %}</th>
      <th>{% trans %}Total{% endtrans %}</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>ASET-22</td>
      <td>Roxxon</td>
      <td>5/28/11</td>
      <td>9/16/11</td>
      <td>
        <span class="label important">{% trans %}overdue{% endtrans %}</span>
      </td>
      <td></td>
      <td>$11,435.23</td>
      <td>
        <a href="{{ path('invoice_payments', { 'invoiceId': 4 }) }}" class="btn secondary icon clock payments" title="Payments">{% trans %}Payments{% endtrans %}</a>
      </td>
    </tr>
  </tbody>
</table>
 

Если я удалю «ручной» триггер, он сработает, но если я его установлю, это не так.

Кто-нибудь знает, как это сделать? Спасибо!

Ответ №1:

Всплывающее окно автоматически обработает некоторые из того, что вы делаете вручную, и это, вероятно, вызывает некоторые странные конфликты. Вы добавляете свой собственный обработчик щелчков без необходимости, когда он может сделать это сам, и вы оборачиваете всю функцию настройки, которая не кажется необходимой. Попробуйте что-то вроде этого:

 $('table[data-type="invoices"] a.payments').popover({
  live: true,
  placement: 'left',
  offset: 5,
  html: true,
  content: function() {
    return $(this).attr('class');
  },
  trigger: 'manual'
});
 

Ответ №2:

Просто обновление: Bootstrap 2.1 позволяет предоставлять click в качестве триггера. (http://twitter.github.com/bootstrap/javascript.html#popovers )