Небольшая предыстория:
У меня есть данные, отображающие данные с использованием asp:Repeater.
Я использую комбинацию прокрутки и разбиения на страницы. Когда вы щелкаете строку, таблица данных перезагружается и прокручивается вверх.
Я использую scrollTop() для прокрутки ранее нажатой строки в поле зрения.
scrollTop() принимает в качестве параметра расстояние в пикселях от вершины. У меня есть функция щелчка для строк, которая отображает сведения о строке, по которой щелкнули.
Проблема:
Я пытаюсь найти способ рассчитать расстояние в пикселях от верхней части таблицы данных до выбранной строки, чтобы я мог использовать его в качестве параметра для scrollTop()
Вот формат datatable:
<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>
And here is the on click function:
$("#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
}
});
Я предполагаю, что я могу сохранить расстояние в пикселях от строки, по которой щелкнули, в функции щелчка, а затем использовать ее для вызова scrollTop().
Есть ли простой способ рассчитать это расстояние в пикселях? Или есть лучший способ прокрутить ранее нажатую строку?