또 다른 해결책 :
$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 () 함수에 인수 ( template ) 로 전달하여 자신 만의 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>
생성 단계 후 (또는 이미 생성 된 경우) $ (this) .popover ( 'show'); 와 함께 popOver를 표시합니다 .
그런 다음 고전적인 Ajax 호출. 성공하면 서버에서 새 데이터를 넣기 전에 이전 팝 오버 콘텐츠 를 정리 해야 합니다 . 현재 팝 오버 콘텐츠를 어떻게 얻을 수 있습니까? 와 .popover.in 선택! .IN 클래스는 팝 오버가 현재 여기에 트릭이 있다고 표시되어 있음을 나타냅니다!
끝내려면 mouseleave 이벤트에서 팝 오버를 숨기십시오.