別の解決策:
$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');
});
ここでの考え方は、mouseenterイベントとmouseleaveイベントを使用してPopOverの表示を手動でトリガーすることです。
上のMouseEnter(、何もポップオーバーがない場合は、あなたの商品のために作成($(この).dataセクション( 'ポップオーバー')== nullの)場合は、それを作成し、)。興味深いのは、独自のPopOverコンテンツを引数(テンプレート)としてpopover()関数に渡すことで定義できることです。htmlパラメータをtrueに設定することを忘れないでくださいも。
ここでは、popovertemplateという非表示のテンプレートを作成し、JQueryで複製します。クローンを作成したら、id属性を削除することを忘れないでください。そうしないと、DOM内でIDが重複してしまいます。また、ページ内のテンプレートを非表示にするには、style = "display:none"であることに注意してください。
<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>
作成ステップの後(またはすでに作成されている場合)、popOverを$(this).popover( 'show');で表示するだけです。
次に、古典的なAjax呼び出し。成功したら、サーバーから新しい新しいデータを配置する前に、古いポップオーバーコンテンツをクリーンアップする必要があります。現在のポップオーバーコンテンツを取得するにはどうすればよいですか?.popover.inセレクタ!.INクラスは、ここでのトリックだと、ポップオーバーが現在表示されていることを示し!
終了するには、mouseleaveイベントで、ポップオーバーを非表示にします。