我正在使用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吗?当查看页面时,它显然不在这个位置。
发布于 2012-08-28 23:29:54
我认为问题在于position()返回元素相对于其父元素的位置;而在本例中,您似乎想要的是页面上的位置,它将是offset() (但据我所知,在其他情况下使用的是相同的位置)。在(position())接口中:
.position()方法允许我们检索元素相对于偏移父元素的当前位置。与此形成对比的是.offset(),后者检索相对于文档的当前位置。当将一个新元素定位在另一个元素附近并在同一个包含DOM元素中时,.position()更有用。
因此,我建议:
tablePos = table.offset();参考文献:
offset().position().https://stackoverflow.com/questions/12162539
复制相似问题