Javascript 设置与单击的图元具有相同偏移的新图元时,偏移位置错误

Javascript 设置与单击的图元具有相同偏移的新图元时,偏移位置错误,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以我尝试做的是一个工具提示/弹出窗口。现在,我试图确保无论您使用的是按钮格式还是锚文本,工具提示都是基于按钮/锚的位置定位的,这样无论输出使用什么元素,基本上都是正确的位置 您会注意到,如果单击按钮或链接,将出现两个警报: // $el is essentially $(this) for the clicked element var linkPosition = $el.offset(); alert(linkPosition.top); 然后我提醒: // $popover is th

所以我尝试做的是一个工具提示/弹出窗口。现在,我试图确保无论您使用的是按钮格式还是锚文本,工具提示都是基于按钮/锚的位置定位的,这样无论输出使用什么元素,基本上都是正确的位置

您会注意到,如果单击按钮或链接,将出现两个警报:

// $el is essentially $(this) for the clicked element
var linkPosition = $el.offset();
alert(linkPosition.top);
然后我提醒:

// $popover is the created popover based on the position of the $el (this instance)
var popoverPosition = $popover.offset();
alert(popoverPosition.top);
您会注意到,在第一个警报实例中,浏览器返回8,在第二个实例中返回28,这让我非常困惑,因为我希望这两个值都与popover的偏移量相同,而popover的偏移量被设置为按钮的偏移量,如您所见:

$popover.css({
     top: linkPosition.top,
)};
有人能帮我理解为什么这些值是不同的吗?作为国家的补偿

jQuery不支持获取隐藏对象的偏移坐标 元素,或用于在 身体元素

然而,对于我所做的,我觉得这应该因此输出正确的值

有什么想法吗?多谢各位


请注意:看起来我使用了twitter引导,但是我没有,我只是在这个演示中使用了类似的样式方法,谢谢。

您得到了不同的值,因为Javascript不会等到元素转移到新位置,所以它会使用旧值并提醒他们

尝试设置一些超时以获取偏移量,然后向他们发出警报

我在代码中设置了一些超时,请参见:


尝试将链接浮动到右侧,然后再次单击,让我知道您得到了什么?将链接浮动到右侧与…有什么关系。。。?顺便说一句,它除了在不同的地方做同样的事情外,什么也不做。哈哈,我试着解释一下,如果你把它浮起来,它将读取相同的偏移量。。.offset方法允许我们检索元素相对于文档的当前位置。是的,但是我需要按钮的偏移量和弹出框/工具提示相同。。。