JS小提琴:http://jsfiddle.net/Xw9QK/1/
我正在制作一个popover,并让它工作,但是当我开始通过ajax加载内容并添加一个微调器首先出现它现在出现在错误的地方。
我认为这个问题与微调器出现一个小弹出窗口的事实有关,当内容加载时,它使用相同的div来添加ajax内容,然后在移动它之前调整框的大小。
现在有时它会起作用,在我的网站上它似乎不能第一次工作,但当关闭并再次打开它时它会快速回到正确的位置!
有谁能看到这里出了什么问题?
我正在使用此功能重置位置:
function reset_popover_position(user_id) {
var position = $('#link_' + user_id).position();
console.log(position);
var top_position = (position.top - $('.new_tooltip').outerHeight()) - 10;
console.log(top_position);
var left_position = (position.left - ($('.new_tooltip').outerWidth() / 2) + ($('#link_' + user_id).outerWidth() / 2));
console.log(left_position);
$('.new_tooltip').css({
top: top_position + "px",
left: left_position + "px"
});
return true;
}
答案 0 :(得分:4)
setTimeout
解决了这个问题。的 Fiddle 强>
这是我在处理动态内容高度时所使用的技巧。宽度。
我认为setTimeout
的{{1}}为浏览器提供了足够的时间来呈现html&因此,当1
触发实际代码时,计算尺寸,一切都会给出正确的结果。
我在setTimeout
内添加了setTimeout
。
toggle_popover