Comment faire pour re-poste un Bootstrap Liste après le contenu dynamique d'insertion?
Donc, fondamentalement, chaque fois que je suis le chargement d'un Bootstrap Liste avec un vide content
option et de l'insertion de contenu dans cette dynamique, la liste perd sa position correcte.
Par exemple:
$('td.chartSection').each(function () {
var $thisElem = $(this);
$thisElem.popover({
placement: 'top',
trigger: 'hover',
html: true,
container: $thisElem,
delay: {
hide: 500
},
content: ' '
});
});
//After popup is shown, run this event
$('td.chartSection').on('shown.bs.popover', function () {
var $largeChart = $(this).find('.popover .popover-content');
//Insert some dummy content
$largeChart.html("dfjhgqrgf regqef f wrgb wrbgqwtgtrg <br /> wfghjqerghqreg fbvwqbtwfbvfgb <br />efgwetrg");
});
Ma Question:
Est-il une méthode qui permet de recalculer les popovers position comme $('td.chartSection').popover('recalculate')
.
Ou est-il un autre moyen de re-position de la liste sans manuellement le faire avec des styles CSS?
OriginalL'auteur Fizzix | 2014-05-06
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a pas de recalculer et il n'y a vraiment pas de moyen facile de le faire. Cela dit, vous pouvez dynamiquement injecter les popovers de cette façon:
Il suffit de remplacer l'ensemble de vos js dans votre violon avec le ci-dessus et vérifier...
Si vous voulez ajouter du code html à l'intérieur du contenu/corps de la liste, c'est la meilleure façon de le faire. Mais vous devez définir cette option: $(this).de données('html', true); et, évidemment, de mettre le code html sur myPopOverContent
OriginalL'auteur jme11
En utilisant Bootstrap v3.3.7:
Vous pouvez étendre la Liste constructeur d'ajouter le support pour un re-positionnement de la fonction. Vous pouvez placer ce script ci-dessous où vous charger de bootstrap.
JSFiddle Démo
Puis dans votre script à chaque fois que vous devez repositionner votre info-bulle après l'insertion du contenu. Vous pouvez les appeler:
J'espérais que ce serait un travail, mais il semble que si le contenu dynamique est trop différent du contenu original, alors il ne fait pas les repositionner correctement. jsfiddle.net/e90npd0v/9
J'ai corrigé votre JSFiddle jsfiddle.net/e90npd0v/12 parce que le repositionner n'a pas été déclenché.
C'est la meilleure solution, pas de scintillement. Merci!
OriginalL'auteur AlexCheuk
Je viens d'appeler
button.popover('show');
Et il re-positionné.
OriginalL'auteur DigitalMC
J'ai utilisé ce code pour ajuster la hauteur au large de la liste quand il est déjà chargé sur la page:
Variable de l'expéditeur est la cible lorsque la liste est centrée sur de.
OriginalL'auteur muchacho
J'ai eu une situation similaire, où j'avais fait une liste qui contient déjà certaines HTML (un chargement spinner) et j'ai changé le contenu lorsqu'un appel ajax retourné. Dans ma fonction de callback ajax, c'était le code que j'ai utilisé pour modifier le positionnement de sorte qu'il est resté centré:
$(popover).css({ top: top - changeInHeight });
OriginalL'auteur Tim
Si la liste de la position "haut" (comme dans la question), vous pouvez ajuster son positionnement absolu à partir du haut de la page.
J'ai créé une fonction pour travailler la hauteur de la liste, puis déplacer vers le haut sur la page par sa hauteur.
et de l'utiliser avec une requête ajax pour obtenir des données:
OriginalL'auteur Alex
J'ai pris le concept de jme11 la réponse de mise à jour pour Bootstrap 3.3.2+
Il y a une méthode appelée setContent sur la liste d'objet, mais pour une raison quelconque, il ne fonctionnait pas pour moi. Si vous souhaitez l'essayer, il devrait ressembler à ceci:
OriginalL'auteur Alex S