Başka bir çözüm:
$target.find('.myPopOver').mouseenter(function()
{
if($(this).data('popover') == null)
{
$(this).popover({
animation: false,
placement: 'right',
trigger: 'manual',
title: 'My Dynamic PopOver',
html : true,
template: $('#popoverTemplate').clone().attr('id','').html()
});
}
$(this).popover('show');
$.ajax({
type: HTTP_GET,
url: "/myURL"
success: function(data)
{
$('.popover.in .popover-inner').empty();
$('.popover.in .popover-inner').html(data);
}
});
});
$target.find('.myPopOver').mouseleave(function()
{
$(this).popover('hide');
});
Buradaki fikir ile manuel popover görüntülenmesini tetikleyecek olan MouseEnter & mouseLeave olaylar.
Açık MouseEnter Öğenize için oluşturulan hiçbir popover (orada eğer olduğunu if ($ (this) .data ( 'popover') == null) ) oluşturun. İlginç olan, popover () işlevine argüman ( şablon ) olarak ileterek kendi PopOver içeriğinizi tanımlayabilmenizdir . Html parametresini de true olarak ayarlamayı unutmayın .
Burada sadece popovertemplate adlı gizli bir şablon oluşturup JQuery ile klonladım. Kimlik özelliğini klonladıktan sonra silmeyi unutmayın, aksi takdirde DOM'da yinelenen kimliklerle karşılaşırsınız. Ayrıca , şablonu sayfada gizlemek için style = "display: none" olduğuna dikkat edin.
<div id="popoverTemplateContainer" style="display: none">
<div id="popoverTemplate">
<div class="popover" >
<div class="arrow"></div>
<div class="popover-inner">
//Custom data here
</div>
</div>
</div>
</div>
Oluşturma adımından sonra (veya zaten oluşturulmuşsa), popOver'ı $ (this) .popover ('show');
Sonra klasik Ajax çağrısı. Başarı durumunda, sunucudan yeni yeni veriler koymadan önce eski açılır bilgi içeriğini temizlemeniz gerekir . Mevcut açılır bilgi içeriğini nasıl alabiliriz? İle .popover.in selektör! .İn sınıf popover anda burada hile olduğunu, görüntülendiğini gösterir!
Bitirmek için, üzerinde mouseLeave olay, sadece popover gizlemek.