jQuery计算表中元素的正确偏移量的方法

问题描述:

我已经给出了一个基于表格的布局,我需要在表格中包含的某些输入框上面显示一些工具提示。jQuery计算表中元素的正确偏移量的方法

我不能使用任何偏移属性来做到这一点,因为当元素包含在表中时,它们全都返回1。 jQuery或其他库有没有一种计算方法?

offset method怎么样,它返回元素的像素偏移量(相对于文档)?

var offset = $('input', myTableRow).offset(); 
// access offset.left and offset.top properties 

您可以使用此值在同一地点定位其他元素:

$(myTooltipElement).appendTo(document.body).css(offset) 
+0

@Roatin虽然我有一个问题,假设它不是只包含在一张表中......说它包含在大约5或6层的表格中(感谢firebug!),那么你如何计算它? – leeand00 2009-09-11 19:45:37

+0

哦,等等,我知道......我只是不断传递元素吧? – leeand00 2009-09-11 19:46:13

+0

不知道我知道你的意思。到正确的元素归结为使用正确的选择器。在我的答案中,实际上可以找到所有'输入'元素内部的任何**,甚至嵌套在另一个表内的表内。您需要对其进行更改以获取所需的确切输入。 – 2009-09-11 20:04:14

试试这个:

var offset = $(myobject).position().left; 
$(mytooltip).css('left',offset + 'px'); 

当然,你得有工具提示的位置设置定义为绝对和顶部(或底部)位置。

+0

为什么你不得不为IE设置'top'为零? – 2009-09-11 21:37:22

+0

哎呀我搞砸了,我的意思是它需要被定义 - 我正在考虑其他事情IE做LOL。 – Mottie 2009-09-11 22:06:28