ページにポップオーバーを作成し、AJAX 呼び出しからコンテンツを取得する関数があります。作成中に、私の関数はポップオーバーの位置を変更します (ページ全体なので、left
属性を 0 に設定し、矢印を移動して要素を指すようにします)。最初はすべて正常に動作しますが、マウスを外に移動してからもう一度移動すると、ポップオーバーはデフォルトの位置から移動しません (矢印も移動しません)。
私のコード:
var last_opened_popover = null
jQuery(document).ready(function(){
jQuery("*[data-poload]").mouseenter(function(){
if (last_opened_popover != null){
last_opened_popover.popover("destroy")
}
var element = jQuery(this)
last_opened_popover = element
var polId = element.data("poload")
jQuery.ajax({
url : my_url,
type : "POST",
data : {
//datas
},
success : function(result){
var supporter_list = compose_supporter_list(result);
var left = element.position().left + 75
element.popover({
content : supporter_list,
html : true,
placement : "bottom",
template : '<div id="shown-popover" class="popover pgsc-popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
element.popover("show")
var popover = jQuery("#shown-popover")
popover.css("left", 0)
popover.find(".arrow").css("left", left)
}
})
}).mouseleave(function(){
jQuery(this).popover("destroy")
})
})