JQuery Tablesorter - 保持第一行不变

时间:2013-10-02 23:44:53

标签: javascript jquery jquery-plugins customization tablesorter

我正在使用jQuery Tablesorter 2.0 plugin创建一个可排序的表格...比如说书。 表格的第一行将是所有书籍的摘要,我希望它始终位于顶部。

我需要自定义tablesorter的行为,但我不认为我可以/应该使用自定义解析器。我认为我需要的是一个自定义比较器功能 - 允许我自己比较任意两行,理想情况下,如果我所寻找的条件没有得到满足,也可以调用默认行为。

示例算法就像这样(希望我没有反转我的结果):

function customSort(lhs, rhs, table, column_index) {
    if (lhs === 'magic_str') {
        return -1; // Magic string wins
    }
    if (rhs === 'magic_str') {
        return 1; // Magic string wins
    }
    return defaultSort(lhs, rhs, table, column_index);
}

现在,我知道一些JS但不足以撬开一个流行的库打开并重写它的一部分,特别是在我加载原始文件之后作为补丁。 (那将是理想的)。此外,如果我能以任何其他方式完成这种行为,我全都听见了。

1 个答案:

答案 0 :(得分:3)

更简单的解决方案是尝试我的fork of tablesorter,然后将您不希望排序的行放入单独的tbody中 - 这对原始的tablesorter无效。

<table class="tablesorter">
    <thead>
        ...
    </thead>
    <tbody class="tablesorter-infoOnly">
        ... <!-- non-sorting tbody -->
    </tbody>
    <tbody>
        ...
    </tbody>
</table>

因为它只有一行,所以你真的不需要添加“tablesorter-infoOnly”类名;它确实可以防止将列样式应用于它。试试this demo并删除tbody类名称以查看差异。

而且仅供参考,您可以在表格中添加任意数量的物品。