2013-11-14 2 views
9

Я пытаюсь интегрировать twitter bootstrap popover; Я вынужден использовать javascript API, потому что некоторые динамические элементы загружаются через Ajax и тоже должны реагировать.Bootstrap popover.toggle() only show

В принципе, вот пример тег, который должен реагировать:

<a data-container="#appConfigDialog" data-toggle="popover" data-placement="top" 
    data-content="&lt;img src=&quot;URL&quot; /&gt;" 
    data-html="true" href="#" 
    class="popoverFileSee btn btn-default">See</a> 

URL, кстати, заменен на правильный URL

И мои JS:

$(document).on("click", ".popoverFileSee", function() { 
    $(this).popover("toggle");  
    return false; 
}); 

Здесь вы поведение, которого я хотел бы достичь:

  • При первом клик, поповер показывает
  • Когда щелчок происходит на открытом пирог, он должен закрыть его

Разве это не цель «тумблер»? В этом примере кода что-то не так, или я должен проверить в другом месте приложения?

Благодаря

EDIT: На данный момент, это всегда показывают поповер, даже если он уже открыт Странная вещь: если добавить alert("test"); в моей функции обратного вызова, то она работает ..

+0

Какое поведение делает это в настоящее время? –

+0

Он всегда показывает popover, событие уже открыто –

ответ

21

Наконец нашел ответ сам ..;) я просто должен был добавить атрибут к моей ссылке: data-trigger="manual"

+0

Большое спасибо! –

0

Removetoggle из popover function без использования click event как,

$(".popoverFileSee").popover(); 

Demo

Обновлено, Если вам нужно add click event после этого вы можете добавить что independent к popover как,

$(".popoverFileSee").popover(); 
$(".popoverFileSee").on('click',function(){ 
    // your ajax code here 
}); 
+0

Как я уже сказал, мне нужно использовать событие click, потому что я загружаю некоторые элементы с помощью Ajax;) –

+0

@ JérémyDutheil см. Мой обновленный ответ. –

+0

Да, это не то, что нужно; когда я говорю о «загрузке некоторых элементов с помощью ajax», я имею в виду «элементы с кнопкой popover». Одним из решений может быть вызов '$ (" .popoverFileSee ") .popover()' каждый раз, когда загружается новый элемент, но я предпочитаю просто добавлять событие «click», которое автоматически сделает это; см. мой ответ, чтобы решить проблему с этим контекстом;) –