Tout d'abord, si vous souhaitez utiliser HTML dans le contenu, vous devez définir l'option HTML sur true:
$('.danger').popover({ html : true});
Ensuite, vous avez deux options pour définir le contenu d'un Popover
- Utilisez l'attribut data-content. Ceci est l'option par défaut.
- Utilisez une fonction JS personnalisée qui renvoie le contenu HTML.
Utilisation du contenu de données : vous devez échapper au contenu HTML, quelque chose comme ceci:
<a class='danger' data-placement='above'
data-content="<div>This is your div content</div>"
title="Title" href='#'>Click</a>
Vous pouvez échapper manuellement au code HTML ou utiliser une fonction. Je ne connais pas PHP mais dans Rails, nous utilisons * html_safe *.
Utilisation d'une fonction JS : Si vous faites cela, vous avez plusieurs options. Le plus simple, je pense, est de mettre votre contenu div caché où vous le souhaitez, puis d'écrire une fonction pour transmettre son contenu au popover. Quelque chose comme ça:
$(document).ready(function(){
$('.danger').popover({
html : true,
content: function() {
return $('#popover_content_wrapper').html();
}
});
});
Et puis votre HTML ressemble à ceci:
<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>
J'espère que ça aide!
PS: J'ai eu quelques problèmes lors de l'utilisation du popover et de la non-définition de l'attribut title ... alors, n'oubliez pas de toujours définir le titre.
popover_content_wrapper
, cette solution posera des problèmes car elle est rendue en html (sans vos gestionnaires). La solution est alors d'écouter l'événement "insert.bs.popover" et de rattacher votre gestionnaire au nouvel élément qui est maintenant dans le DOM.En vous basant sur la réponse de jävi, cela peut être fait sans identifiant ni attribut de bouton supplémentaire comme celui-ci:
http://jsfiddle.net/isherwood/E5Ly5/
la source
Une autre méthode alternative si vous souhaitez simplement avoir une apparence et une sensation de pop over. Voici la méthode. Bien sûr, c'est une chose manuelle, mais bien réalisable :)
HTML - bouton
HTML - popover
JS
la source
style="top: 200px; left: 90px;
lebgform
div. Existe-t-il un moyen d'appeler le code de placement automatique de bootstrap à la place? En outre, vous pouvez utiliser fadeToggle () ou simplement toggle () pour différents effets dans le javascript.En retard à la fête. Construire sur les autres solutions. J'avais besoin d'un moyen de passer le DIV cible en tant que variable . Voici ce que j'ai fait.
HTML pour la source Popover (ajout d'un attribut de données data-pop qui contiendra la valeur de l'ID / ou de la classe DIV de destination):
HTML pour le contenu Popover (j'utilise la classe de masquage bootstrap):
Scénario:
la source
En plus d'autres réponses. Si vous autorisez les
html
options, vous pouvez passer unjQuery
objet au contenu, et il sera ajouté au contenu du popover avec tous les événements et liaisons. Voici la logique du code source:html
n'est pas autorisé, les données de contenu seront appliquées sous forme de textehtml
autorisé et que les données de contenu sont des chaînes, elles seront appliquées commehtml
la source
Toutes ces réponses manquent un aspect très important!
En utilisant .html ou innerHtml ou externalHtml, vous n'utilisez pas réellement l'élément référencé. Vous utilisez une copie du code HTML de l'élément. Cela présente de sérieux inconvénients.
Ce que vous voulez faire est de charger l'objet lui-même dans le popover.
https://jsfiddle.net/shrewmouse/ex6tuzm2/4/
HTML:
JQuery:
la source
Pourquoi si compliqué? mettez simplement ceci:
la source
la source