Prima di tutto, se si desidera utilizzare HTML all'interno del contenuto è necessario impostare l'opzione HTML a true:
$('.danger').popover({ html : true});
allora hai due opzioni per impostare il contenuto di un Popover
- Utilizzare l'attributo del contenuto di dati. Questa è l'opzione predefinita.
- Utilizzare una funzione JS personalizzata che restituisce il contenuto HTML.
Utilizzando i dati contenuti-: Hai bisogno di fuggire il contenuto HTML, qualcosa di simile:
<a class='danger' data-placement='above'
data-content="<div>This is your div content</div>"
title="Title" href='#'>Click</a>
è possibile sfuggire il codice HTML manualmente o utilizzare una funzione. Non conosco PHP ma in Rails usiamo * html_safe *.
Utilizzo di una funzione JS: Se si esegue questa operazione, sono disponibili diverse opzioni. Il modo più semplice è quello di mettere il tuo contenuto div nascosto dove vuoi e poi scrivere una funzione per passare il suo contenuto al popover. Qualcosa di simile a questo:
$(document).ready(function(){
$('.danger').popover({
html : true,
content: function() {
return $('#popover_content_wrapper').html();
}
});
});
E poi il codice HTML simile a questo:
<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>
Speranza che aiuta!
PS: ho avuto qualche problema quando utilizzo popover e non ho impostato l'attributo title ... quindi, ricordati di impostare sempre il titolo.
fonte
2012-01-18 10:55:06
Caro @ Javi, ho aperto una domanda follow-up. http://stackoverflow.com/questions/11349058/how-can-i-use-div-in-twitters-popover-with-multiple-buttons – trante
FYI, bootstrap ha una classe chiamata "hide" che imposta display: nessuno – Domenic
Solo una nota, ma questo approccio è tremendamente lento per IE7, presumibilmente perché la copia dell'html comporta molte manipolazioni DOM. Non è utilizzabile in IE7, nella nostra esperienza, quindi devi metterlo in un altro modo. – philw