Edit: Tôi đã thực hiện một mẫu của kỹ thuật này tại http://jsbin.com/igupu4/3. Nhấp vào bất kỳ tiêu đề cột nào để sắp xếp ...
Mặc dù tôi không có câu trả lời cho câu hỏi của bạn về jquery, đây là cách thay thế để có hành vi cụ thể mà bạn mô tả ở đây, số hàng cố định sau khi sắp xếp. (. Sử dụng CSS, đặc biệt là content property, và counter related properties/functions)
<html>
<head>
<title>test</title>
<style type="text/css">
tbody tr
{
counter-increment : rownum ;
}
tbody
{
counter-reset: rownum;
}
table#sample1 td:first-child:before
{
content: counter(rownum) " " ;
}
table#sample2 td.rownums:before
{
content: counter(rownum) ;
}
</style>
<script src="jquery-1.2.6.min.js" ></script>
<script src="jquery.tablesorter.min.js" ></script>
<script>
$(document).ready(function()
{
$("table").tablesorter();
}
);
</script>
</head>
<body>
<table id="sample1">
<thead>
<tr>
<th>Col 1</th>
<th>Col 2</th>
</thead>
<tbody>
<tr>
<td>
<p>foo</p>
</td>
<td>
<p>quuz</p>
</td>
</tr>
<tr>
<td>bar</td>
<td>quux</td>
</tr>
<tr>
<td>baz</td>
<td>baz</td>
</tr>
</tbody>
</table>
<table id="sample2">
<thead>
<tr>
<th>Rownums</th>
<th>Col 1</th>
<th>Col 2</th>
<th>More Rownums</th>
</thead>
<tbody>
<tr>
<td class="rownums"></td>
<td>
<p>foo</p>
</td>
<td>
<p>bar</p>
</td>
<td class="rownums"></td>
</tr>
<tr>
<td class="rownums"></td>
<td>quuz</td>
<td>baz</td>
<td class="rownums"></td>
</tr>
<tr>
<td class="rownums"></td>
<td>fred</td>
<td>quux</td>
<td class="rownums"></td>
</tr>
</tbody>
</table>
</body>
</html>
Nếu trình duyệt của bạn là đủ CSS2.1 tương thích, bạn có thể sử dụng tr: trước khi thay vì td: first-child: trước trong mẫu 1. (Mozilla only supports this in trunk for now...)
Trong ví dụ 2, bạn có thể xem cách định vị các cột số hàng của mình ở bất kỳ đâu, không chỉ trong cột đầu tiên.
Rất đẹp! Tôi nghĩ rằng trong vòng lặp for nên có '<=' thay vì '<'. – Marcin
Công cụ tuyệt vời, một điều nhỏ mặc dù, nó không nên bắt đầu lặp từ 'var i = 0;' nhưng 'var i = 1;' nếu không nó sẽ nhận được 0 chỉ mục ở dưới cùng của bảng. – Marcin