一些背景:
我有一个使用 asp:Repeater 显示数据的数据表。
我正在使用滚动和分页的组合。当您单击一行时,数据表会重新加载并滚动到顶部。
我正在使用 scrollTop() 将先前单击的行滚动到视图中。
scrollTop() 将距顶部的像素距离作为参数。我有一个单击功能,用于显示被单击行的详细信息的行。
问题:
我正在尝试找出一种方法来计算从数据表顶部到所选行的像素距离,以便我可以将其用作 scrollTop() 的参数
这是数据表的格式:
<table id="tblId" class="dataTables_display">
<thead>
<tr>
//a bunch of <th tags>
</tr>
</thead>
<tbody>
<asp:Repeater ID="rptCraft" runat="server" OnItemDataBound="rptCraft_ItemDataBound">
<ItemTemplate>
<tr>
<td style="display:none;" class="rowClick"><asp:Literal ID="litId" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "Id") %>'/></td>
<td><asp:CheckBox ID="chkDelete" runat="server" AutoPostBack="false" /></td>
<td><asp:Literal ID="litDescription" ClientIDMode="Static" runat="server" Text='<%# Eval("Description")%>'/></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
这是点击功能:
$("#tblId tbody tr").live("click", function (event) {
var cell = $(this).children("td:first");
var id = jQuery.trim(cell.text()); //get id code
if (id != "" && !isNaN(id)) {
//some code that accesses DB and shows details of row
}
});
我的猜测是,我可以将与单击行的像素距离存储在 on click 函数中,然后使用它来调用 scrollTop()。
有没有一种简单的方法来计算这个像素距离?还是有更好的方法来滚动先前单击的行?