我正在使用twitter bootstrap尝试通过克隆表来锁定表中的第一列:
$('#dashboardtab').load('load_table.php', function() {
$('#scroller #testcase').each(function(){
var table = $(this),
fixedCol = table.clone(true),
fixedWidth = table.find('th').eq(0).width(),
tablePos = table.position();
alert("LEFT: " + tablePos.left);
...
});
});
我的HTML看起来像这样:
<div class="row">
<div id="scroller">
<table id="testcase" class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th>TEST 1</th>
<th>TEST 2</th>
<th>TEST 3</th>
</tr>
</thead>
<tbody>
...
</tbody>
</table>
</div>
</div>
知道为什么这个位置总是0?查看页面时,显然不在此位置。
答案 0 :(得分:2)
我认为问题是position()
返回元素相对于其父元素的位置;而在这种情况下,你似乎想要在页面上的位置,offset()
(但就我所知,其他方面也是如此)。来自API(适用于position()
):
.position()方法允许我们检索元素相对于偏移父元素的当前位置。将此与.offset()进行对比,后者检索相对于文档的当前位置。当将一个新元素定位在另一个元素附近并在同一个包含DOM元素内时,.position()更有用。
因此,我建议:
tablePos = table.offset();
参考文献: