2012-09-08 48 views
6

Ho creato un popover su una discesa attraverso i dati di attributi:Twitter-bootstrap: come verificare se il popover sta già mostrando?

<select id="timezone_dropdown" data-content="This is the timezone" rel="popover" data-placement="bottom" data-original-title="Time Zone"> 

E ogni volta che clicco su un pulsante di collegamento, vorrei mostrare il popover galleggiante sopra il menu a discesa.

<a class="btn timezone_help" href="#">Help</a> 

in JavaScript ho definito in questo modo:

$(document).ready(function() { 
    $('.timezone_help').click(show_timezone_help);  
}) 

function show_timezone_help(event){ 
    event.preventDefault(); 
    $('#timezone_dropdown').popover('show'); 
} 

Questo fa il lavoro, ma quando si fa clic di nuovo sul pulsante, rimane ancora lì. C'è un modo per verificare se è già aperto e nasconderlo invece all'interno della funzione, o c'è un modo migliore?

risposta

7

Uso .popover('toggle'):

function show_timezone_help(event){ 
    event.preventDefault(); 
    $('#timezone_dropdown').popover('toggle'); 
}​ 

E aggiungere l'attributo data-trigger="manual" alla discesa.

DEMO.

+0

Siamo spiacenti ma c'è un problema. Per favore vai sul tuo DEMO e clicca su Aiuto. Il popover appare. Fare nuovamente clic su Guida per farlo scomparire. Ora fai clic sul menu a discesa. Il popover appare di nuovo. Molto confuso. Che cosa sta causando questo? +1 per il tuo impegno, ma per il momento devo annullare la risposta perché sembra che il comando "toggle" potrebbe essere problematico. Grazie – Houman

+0

@ Kave: Ciao, prova questo violino: http://jsfiddle.net/j2UVP/. Nota che ho anche aggiunto il 'data-trigger =" manual "' al codice HTML del tuo menu a discesa. –

+0

Perfetto. Semplicemente perfetto. :) – Houman

Problemi correlati