无法在页面上找到表格的当前位置

时间:2012-08-28 15:24:45

标签: jquery twitter-bootstrap

我正在使用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?查看页面时,显然不在此位置。

1 个答案:

答案 0 :(得分:2)

我认为问题是position()返回元素相对于其父元素的位置;而在这种情况下,你似乎想要在页面上的位置,offset()(但就我所知,其他方面也是如此)。来自API(适用于position()):

  

.position()方法允许我们检索元素相对于偏移父元素的当前位置。将此与.offset()进行对比,后者检索相对于文档的当前位置。当将一个新元素定位在另一个元素附近并在同一个包含DOM元素内时,.position()更有用。

因此,我建议:

tablePos = table.offset();

参考文献: