2013-11-14 15 views
9

Próbuję zintegrować poppera bootstrap twitter; Jestem zmuszony korzystać z javascript API, ponieważ niektóre dynamiczne elementy ładowane są przez Ajax i powinny również reagować.Bootstrap popover.toggle() pokazuje tylko

Zasadniczo, oto przykład tag, który powinien reagować:

<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 jest przez sposób zastąpiona prawidłowym URL

A moi JS:

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

Oto zachowanie chciałbym osiągnąć:

  • Po pierwsze kliknięcie, popover pokazuje
  • Kiedy kliknięcie występuje na otwartym popover, należy zamknąć to

Czy to nie jest celem „Przełącz”? Czy w tym kodzie jest coś nie tak, czy też powinienem sprawdzić gdzie indziej w mojej aplikacji?

Dzięki

EDIT: Na razie to zawsze pokazują popover, nawet jeśli jest już otwarty dziwne: jeśli dodam alert("test"); w mojej funkcji wywołania zwrotnego, to działa ..

+0

Co zachowanie to obecnie? –

+0

Zawsze pokazuje popover, wydarzenie, które już zostało otwarte –

Odpowiedz

21

Wreszcie znaleziono odpowiedź ja ..;) po prostu musiałem dodać atrybut do mojego linku: data-trigger="manual"

+0

Dziękuję bardzo koleś! –

0

Removetoggle z popover function bez użycia click event jak,

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

Demo

Zaktualizowany, Jeśli trzeba add click event after tego można dodać co jest independent do popover jak,

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

Tak jak powiedziałem, muszę użyć zdarzenia click, ponieważ ładuję niektóre elementy za pomocą Ajax;) –

+0

@ JérémyDutheil zobacz moją zaktualizowaną odpowiedź. –

+0

Tak, to nie jest rzecz; kiedy mówię o "ładowaniu niektórych elementów przez ajax", mam na myśli "elementy, które mają przycisk popover" Jednym z rozwiązań może być wywołanie '$ (" .popoverFileSee ") .popover()' przy każdym załadowaniu nowego elementu, ale wolę po prostu dodać "zdarzenie kliknięcia", które automatycznie to zrobi; zobacz moją odpowiedź, aby rozwiązać problem w tym kontekście;) –

Powiązane problemy