2012-09-08 27 views
6

He creado un popover en un menú desplegable a través de los datos de atributos:Twitter-bootstrap: ¿Cómo verificar si el popover ya se está mostrando?

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

Y cada vez que hago clic en un botón de enlace, me gustaría mostrar la popover flotando sobre el desplegable.

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

en JavaScript he definido así:

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

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

Esto hace el trabajo, sin embargo, al hacer clic en el botón de nuevo, todavía queda allí. ¿Hay alguna manera de comprobar si ya está abierto y ocultarlo en su lugar dentro de la función, o hay una forma mejor?

Respuesta

7

Uso .popover('toggle'):

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

Y añadir el atributo data-trigger="manual" a su desplegable.

DEMO.

+0

Lo sentimos, pero hay un problema. Vaya a su DEMO y haga clic en Ayuda. Aparece el popover. Haga clic de nuevo en Ayuda para que desaparezca. Ahora haga clic en el menú desplegable. El popover aparece de nuevo. Muy confuso. ¿Qué está causando esto? +1 por su esfuerzo, pero tengo que responder esto por ahora ya que parece que el 'alternar' podría ser problemático. Gracias – Houman

+0

@Kave: Hola, prueba este violín: http://jsfiddle.net/j2UVP/. Tenga en cuenta que también agregué el '' data-trigger = "manual" 'al HTML de su menú desplegable. –

+0

Perfecto. Simplemente perfecto. :) – Houman

Cuestiones relacionadas