2012-02-15 3 views
5

Я использую объект popover из библиотеки Bootstrap Twitter в ручном режиме, и мне было интересно, как я должен закрывать всплывающую подсказку, когда пользователь нажимает на нее.Как закрыть Bootstrap popovers (или любой элемент вообще), когда пользователь нажимает на него?

Вот мой HTML:

<a id="stats-bar" rel="popover" data-placement="top" data-trigger="manual" data-title="Title here" data-content="Hello everyone.">Test</a> 

и мой JavaScript:

$('#stats-bar').click(function(e) { 
     $(this).popover('show'); 
}); 

Как я могу скрыть поповер, когда пользователь щелкает где-нибудь, а сам поповер? Я думал об использовании фиксированного прозрачного div за popover и установил его событие click, но я не уверен, что это лучший способ.

ответ

2

Я решил использовать фиксированный прозрачный div за popover и установить событие click, поскольку это похоже на самое надежное и простое решение.

0

Как насчет генераторного прослушивателя событий щелчка, который запускает, когда вы нажимаете в теле? Проверьте этот пост, он похож на то, что вы пытаетесь достичь.

https://stackoverflow.com/a/2125122/1013422

Вы могли бы использовать это, чтобы закрыть фактический поповер

$('#stats-bar').popover('hide') 

Я бы только определить функцию, когда всплывающее событие запускается, а затем удалить его, как только вы закрыли всплывающее окно, что так что вы не постоянно слушаете события кликов.

6

я в конечном итоге подключение к событию документа щелчка и скрыть любые подсказки в этой точке

 $(document).click(function (e) 
     { 
      // check the parents to see if we are inside of a tool tip. If the click came 
      // from outside the tooltip, then hide our tooltip 
      if ($(e.target).parents('.tooltip').length == 0) $('[data-original-title]').tooltip('hide'); 
     }); 

Если вы используете ручной вариант запуска и подключение к событию щелчка, чтобы показать всплывающую подсказку вам нужно будет для вызова e.stopPropagation(), чтобы предотвратить включение события щелчка документа при показе всплывающей подсказки.

+0

Это должен быть ответ, это самое чистое и простое решение, которое я видел еще –

Смежные вопросы