Javascript 引导式Popover无法持续工作

Javascript 引导式Popover无法持续工作,javascript,jquery,css,twitter-bootstrap,Javascript,Jquery,Css,Twitter Bootstrap,我有一个引导弹出框问题。有时有效,但有时无效。当访问者将鼠标悬停在用户名上时,我使用它生成一个带有用户信息的弹出窗口。页面是由ajax生成的,所以起初我认为这只是一个内容加载后的问题,但问题是它有时会工作 $(document).on('mouseenter', '.postusername', function(e){ var userid = this.parentElement.parentElement.children[0].innerHTML; var te = th

我有一个引导弹出框问题。有时有效,但有时无效。当访问者将鼠标悬停在用户名上时,我使用它生成一个带有用户信息的弹出窗口。页面是由ajax生成的,所以起初我认为这只是一个内容加载后的问题,但问题是它有时会工作

$(document).on('mouseenter', '.postusername', function(e){
    var userid = this.parentElement.parentElement.children[0].innerHTML;
    var te = this;
    if(userid)
    {
        $.get('/Requests/getuinfo.php', {id : userid})
        .done(function(data){
            var uinfo = JSON.parse(data);
            boo = uinfo;
            $(te).popover({
                html : true,
                template : '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>',
                content : '<div class="popover-holder" style="background-image:url(\'/Style/Media/CoverPics/' + uinfo.coverpic + '\');">' + uinfo.name 
                + '</div>',
                placement: 'auto'
            });
            $(te).popover('show');
        });
    }
});

$(document).on('mouseleave', '.postusername', function(e){
    $(this).popover('hide');
});
$(document).on('mouseenter','.posturename',函数(e){
var userid=this.parentElement.parentElement.children[0].innerHTML;
var te=这个;
如果(用户ID)
{
$.get('/Requests/getuinfo.php',{id:userid})
.完成(功能(数据){
var uinfo=JSON.parse(数据);
boo=uinfo;
$(te).popover({
是的,
模板:“”,
内容:“”+uinfo.name
+ '',
位置:“自动”
});
$(te).popover('show');
});
}
});
$(document).on('mouseleave','.postername',函数(e){
$(this.popover('hide');
});

这就是我使用的Javascript。

正如您所发现的,问题在于您试图为某个已经完成的东西创建一个新的popover。隐藏后移除popover已修复该问题

但是,这应该可以在不删除的情况下解决问题,并且意味着您也只能为每个用户获取一次用户信息

var userids = [];

$(document).on('mouseenter', '.postusername', function(e){
    var userid = this.parentElement.parentElement.children[0].innerHTML;
    var te = this;
    if(userid)
    {
        if (userids.indexOf(userid) === -1) {
            $.get('/Requests/getuinfo.php', {id : userid})
            .done(function(data){
                var uinfo = JSON.parse(data);
                boo = uinfo;
                $(te).popover({
                    html : true,
                    template : '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>',
                    content : '<div class="popover-holder" style="background-image:url(\'/Style/Media/CoverPics/' + uinfo.coverpic + '\');">' + uinfo.name 
                    + '</div>',
                    placement: 'auto'
                });
                $(te).popover('show');
                userids.push(userid);
            });
        }
        else {
            $(te).popover('show');
        }
    }
});

$(document).on('mouseleave', '.postusername', function(e){
    $(this).popover('hide');
});
var userids=[];
$(document).on('mouseenter','.postername',函数(e){
var userid=this.parentElement.parentElement.children[0].innerHTML;
var te=这个;
如果(用户ID)
{
if(userid.indexOf(userid)=-1){
$.get('/Requests/getuinfo.php',{id:userid})
.完成(功能(数据){
var uinfo=JSON.parse(数据);
boo=uinfo;
$(te).popover({
是的,
模板:“”,
内容:“”+uinfo.name
+ '',
位置:“自动”
});
$(te).popover('show');
push(userid);
});
}
否则{
$(te).popover('show');
}
}
});
$(document).on('mouseleave','.postername',函数(e){
$(this.popover('hide');
});

它保留了一个用户ID数组,您可以从中获取信息,并且只有在您还没有这样做的情况下才能获取信息。

您是否在隐藏popover后尝试过删除它,或者它会自动删除它?这很有效!非常感谢@Archer。顺便说一句,我将添加一个答案,这个答案可能也会解决这个问题,并为您省去重复获取用户信息的麻烦。