javascript - JQuery Tablesorter - 保持第一行不变

标签 javascript jquery jquery-plugins customization tablesorter

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

我需要自定义表格排序器的行为,但我认为我不能/不应该使用自定义解析器来做到这一点。我认为我需要的是一个自定义比较器函数 - 一个允许我自己比较任意两行的函数,理想情况下还能够在我要查找的条件未得到满足时调用默认行为。

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

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,但不足以 pry 开一个流行的库并重写它的一部分,特别是作为一个补丁,在我加载原始库之后,它会放在最上面。 (那将是理想的)。此外,如果我能以任何其他方式完成这种行为,我会洗耳恭听。

最佳答案

一个更简单的解决方案是尝试我的 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。

关于javascript - JQuery Tablesorter - 保持第一行不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148591/

相关文章:

javascript - 无法将 javascript 添加到 chrome 扩展 html

javascript - 更改可折叠菜单中的箭头方向?

javascript - jQuery 获取数据属性并向下滑动它的父级

javascript - ajax 调用返回值但变量为空

jquery - ajax后重新加载modernizr

javascript - jqGrid 行删除

javascript - 给出错误的Jquery冲突

javascript - 使用 JQuery 计算粘性标题的高度

javascript - jQuery.on ("click") 在 AngularJs 中不起作用

javascript - localscroll 的哈希选项,滚动时使页面闪烁。怎样才能让滚动流畅