文档演示使用的 jQuery 和 Tablesorter 与您使用的不同(古老)版本。通过比较来源,我发现自动 col/row span 检测从未在较新版本中完成。跨度检测功能仍然存在 - 但只是没有被调用。不知道为什么会发生这种回归。
话虽如此,我可以使用此设置运行您的演示:
$(document).ready(function(){
$('#rowspan').tablesorter({
headers: {
4: {sorter: false},
5: {sorter: false},
6: {sorter: false},
7: {sorter: false}
}
});
});
如果您知道colspan>1 是一个安全标准,那么我会推断出这样的标题索引:
$(function(){
var headers = {};
$('#rowspan thead th').each(function(i,h){
if (this.colSpan>1) { headers[i] = { sorter: false }; }
});
$('#rowspan').tablesorter({
headers: headers
});
});
更新:
“工作”示例:http://jsbin.com/ucija3
该示例看起来像您要求的,或者我不明白您的问题。但是,我刚刚发现单击标有 3.1 - 4.2 的标题会引发异常。 所以,我想我对你问题的最终回答是:这个插件的当前版本不适用于 row 或 colspans。
更新:
一个简单的补丁来完成这项工作:
在函数buildHeaders(第290行)中,将$tableHeaders = $("thead th",table);行更改为:
$tableHeaders = $("thead th:not([colspan]),thead th[colspan=1]",table);
更复杂更灵活的补丁:
将配置参数添加到buildHeaders(第 290 行):
function buildHeaders(table, config) { # ...
还有一个过滤器到$tableHeaders(第299行):
$tableHeaders = $("thead th",table).filter( config.headerFilter || '*' );
在调用时将配置传递给 buildHeaders(第 504 行):
$headers = buildHeaders(this, config);
在初始化 tablesorter 时添加过滤器:
$(function(){
$('#rowspan').tablesorter({
headerFilter: function(){ return this.colSpan == 1; }
});
});
Here is a pre-patched version 包括 headerFilter 选项 and a demo of it in action.