En primer lugar, si desea usar HTML dentro del contenido, debe establecer la opción HTML en verdadero:
$('.danger').popover({ html : true});
Luego tiene dos opciones para configurar el contenido de un Popover
- Use el atributo de contenido de datos. Esta es la opción por defecto.
- Utilice una función JS personalizada que devuelva el contenido HTML.
Uso de contenido de datos : necesita escapar del contenido HTML, algo como esto:
<a class='danger' data-placement='above'
data-content="<div>This is your div content</div>"
title="Title" href='#'>Click</a>
Puede escapar del HTML manualmente o usar una función. No sé acerca de PHP, pero en Rails usamos * html_safe *.
Uso de una función JS : si hace esto, tiene varias opciones. Lo más fácil que creo es poner tu contenido div oculto donde quieras y luego escribir una función para pasar su contenido a popover. Algo como esto:
$(document).ready(function(){
$('.danger').popover({
html : true,
content: function() {
return $('#popover_content_wrapper').html();
}
});
});
Y luego su HTML se ve así:
<a class='danger' data-placement='above' title="Popover Title" href='#'>Click</a>
<div id="popover_content_wrapper" style="display: none">
<div>This is your div content</div>
</div>
¡Espero eso ayude!
PD: He tenido algunos problemas al usar popover y no configurar el atributo de título ... así que recuerde siempre configurar el título.
popover_content_wrapper
, esta solución causará problemas porque se está procesando en html (sin sus controladores). La solución entonces es escuchar el evento "insert.bs.popover" y volver a adjuntar su controlador al nuevo elemento que ahora está en el DOM.Sobre la base de la respuesta de jävi, esto se puede hacer sin ID o atributos de botón adicionales como este:
http://jsfiddle.net/isherwood/E5Ly5/
fuente
Otro método alternativo si desea simplemente tener una apariencia de pop over. El siguiente es el método. Por supuesto, esto es algo manual, pero agradablemente viable :)
HTML - botón
HTML - popover
JS
fuente
style="top: 200px; left: 90px;
elbgform
div. ¿Hay alguna forma de llamar al código de ubicación automática de bootstrap? Además, puede usar fadeToggle () o simplemente alternar () para diferentes efectos en javascript.Tarde a la fiesta. Partiendo de las otras soluciones. Necesitaba una forma de pasar el DIV objetivo como variable . Aquí esta lo que hice.
HTML para fuente Popover (se agregó un atributo de datos data-pop que contendrá el valor para la identificación / clase de DIV de destino)
HTML para contenido Popover (estoy usando la clase de arranque bootstrap):
Guión:
fuente
Además de otras respuestas. Si permite las
html
opciones, puede pasarjQuery
objetos al contenido, y se agregará al contenido de popover con todos los eventos y enlaces. Aquí está la lógica del código fuente:html
no está permitido, los datos de contenido se aplicarán como textohtml
permitido y los datos de contenido son una cadena, se aplicarán comohtml
fuente
¡Todas estas respuestas pierden un aspecto muy importante!
Al usar .html o innerHtml o externalHtml, en realidad no está utilizando el elemento referenciado. Estás utilizando una copia del elemento html. Esto tiene algunos inconvenientes serios.
Lo que quieres hacer es cargar el objeto en el popover.
https://jsfiddle.net/shrewmouse/ex6tuzm2/4/
HTML:
JQuery:
fuente
¿Por qué tan complicado? solo pon esto:
fuente
fuente