JQuery Tablesorter - 保持第一行不变

Posted

技术标签:

【中文标题】JQuery Tablesorter - 保持第一行不变【英文标题】:JQuery Tablesorter - leave the first row intact 【发布时间】:2013-10-09 12:37:02 【问题描述】:

我正在使用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】:

一个更简单的解决方案是尝试我的fork of tablesorter,然后将您不想排序的那一行放入单独的 tbody - 这不适用于原始表格排序器。

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

由于只有一行,所以不需要添加“tablesorter-infoOnly”类名;它确实会阻止对其应用列样式。试试this demo,去掉tbody类名看看区别。

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

【讨论】:

谢谢,看起来很有希望。我正在做一些额外的事情,比如有两行标题,一个用于元目的,具有多列跨度并且不进行排序。一列被隐藏。此外,我添加和删除了相当多的行,原来的 tablesorter 有时会搞砸。希望您不会介意如果我遇到困难与您联系。 页眉中的两行、信息 tbody、页脚等应该不是问题。隐藏列可能不是必需的;但这一切都取决于你想用这些数据做什么。如果您需要任何帮助,请随时寻求帮助:) 好的,这里有个问题。我在 thead 中有两行,我只想在第二个 tr 上排序。所以,我使用这个设置:headers: 0: sorter: "digit" , 1: sorter: "text" , 2: sorter: "text" , ...。我相信这适用于顶部标题行。就好像我还需要一个headers2 键,或者我应该指定我的标题单元格的二维坐标。希望这个问题是有道理的。我目前可以使用headers 键关闭两个标题中的第一个中的排序,但我不能使用相同的属性来指定标题中第二行的数据类型。 sortList 适用于? 您可以将sorter-false 类名添加到您要忽略的单元格中。标题选项编号(0、1、2、3 等)也适用于标题单元格索引。 SortList 适用于列,而不是标题索引。这是一个例子:jsfiddle.net/abkNM/1395 啊,我不认为每个标题单元格都可以通过单个索引来识别。现在想想,这完全有道理。谢谢你,先生!您的 tablesorter 叉子工作得很好,而且非常易于使用。它应该更受欢迎。

以上是关于JQuery Tablesorter - 保持第一行不变的主要内容,如果未能解决你的问题,请参考以下文章

Jquery排序分页插件tablesorter简介

问题:使用 jquery 插件 tablesorter 进行表格排序和分页

jQuery插件 tablesorter 表格排序 使用说明

jQuery插件 tablesorter 表格排序 使用说明

Jquery:TableSorter-具有特定格式的日期不起作用

jQuery tablesorter 页面插件不起作用