【发布时间】:2015-10-19 03:07:54
【问题描述】:
如果我的表中有超过 10 行,我的表将无法排序 (desc)。如果我有 10 行或更少的行但不是更多,它可以完美地工作。这是我的代码:
function sortAndFadingRows(rowId) {
var $row = $(rowId);
var oldRowIndex = $row.index();
sortTable();
var newRowIndex = $row.index();
if (newRowIndex < oldRowIndex) {
$row.children().effect('highlight', { color: '#fff' }, 1000);
} }
var sortTable = function () {
var table = $("#tableId");
var sorts = table.find(".item").detach().toArray();
sorts.sort(function (a, b) {
var valA = parseInt($(a).find(".myValue").text());
var valB = parseInt($(b).find(".myValue").text());
return valA < valB;
});
table.append(sorts); };
我每次收到数据都会调用sortAndFadingRows(rowId),当我收到数据时,我直接把它放在一个特定列的td中,以根据该列对表格进行排序。然后我发送行 id 以检查其索引是否已更改。如果该行向上跳跃(其索引减少),那么我会突出显示它,否则不会。正如我所说,如果我们有 10 行或更少但不超过 10 行,它会完美运行。有人知道我做错了什么吗?
【问题讨论】:
-
我认为你的数据应该有问题
-
排序函数必须返回 THREE 值:-1、0、1 表示小于/等于/大于。由于您返回的是布尔值,因此您只提供 0 和 1。
标签: javascript jquery html arrays html-table