Javascript 引导式Popover无法持续工作
我有一个引导弹出框问题。有时有效,但有时无效。当访问者将鼠标悬停在用户名上时,我使用它生成一个带有用户信息的弹出窗口。页面是由ajax生成的,所以起初我认为这只是一个内容加载后的问题,但问题是它有时会工作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
$(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。顺便说一句,我将添加一个答案,这个答案可能也会解决这个问题,并为您省去重复获取用户信息的麻烦。