时间:2010-07-24 19:57:20

标签: jquery tablesorter html-table

4 个答案:

答案 0 :(得分:3)

docs demo使用的是jQuery和Tablesorter的不同(古老)版本。从比较源我发现自动col / row跨度检测永远不会在较新版本中完成。跨度检测功能仍在那里 - 但只是没有被调用。不知道为什么会出现这种回归。

话虽如此,我可以使用此设置运行您的演示:

$(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的标题会引发异常。 所以,我想我对你的问题的最终答案是:这个插件的当前版本不适用于行或者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.

答案 1 :(得分:2)

此功能已停用,如下所示: link text

我找到了另一种方法来产生相同的效果,在第298行的tablesorter js中有这个代码规则:

$tableHeaders = $("thead th",table);

将其更改为

$tableHeaders = $("thead th:not([colspan])",table);

它对我有用!

修改 更改了代码和位置

答案 2 :(得分:1)

仅供参考,red-X提供的修复:

  

$ tableHeaders = $(“thead th”,table);   将其更改为

     

$ tableHeaders = $(“thead   个:否([列跨度])”,表);

打破了IE6和IE7的tablesorter插件。我提出的唯一解决方案(我在其他地方找到的解决方案)是你需要只有一行和一行包含TH标签。您可以在THEAD中包含其他列(包括带有colspans的列),但它们必须使用TD标记。这在标记方面并不理想,但至少该插件适用于IE6和IE7。

答案 3 :(得分:0)

我尚未对此进行全面测试,但我建议更新您的文档类型。从经验表分类器(和一般的jQuery)可以对doc类型非常敏感。

演示(有效)使用以下内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

修改:更新DocType后,它仍然无效。然后我下载了演示站点上使用的TableSorter版本,它现在可以作为演示版使用。唯一的另一个区别是我在文档的head部分包含了脚本和css,但这应该没有区别。

我确实认为jQuery的版本可能是一个问题,但我使用的是与您使用相同资源的1.3.2。