我做了一个非常基本的例子,当我在第一个<tr> <td> (第一行,第一个单元格)上使用连字符时,表操作器就不再工作了。
我用的是jquery 1.7.1和最新的tablesorter.min.js
代码示例:
Works -> No连字符: http://jsfiddle.net/6gjLs/4/
在第二行-> Hyphen上工作:http://jsfiddle.net/8Wet2/4/
在第一行的第一个td上不工作-> Hyphen: http://jsfiddle.net/YkaCv/4/
您可以看到,在这3个示例中,代码完全相同,只有表数据会发生变化。
有谁遇到过同样的问题吗?有什么解决办法吗?
发布于 2012-03-16 07:44:21
嘿,这就是为什么它不起作用的原因& hack-y解决方案。
原因:
因此,它的表分类器代码确实照顾了破折号-。
但是我正在阅读这个插件,并且应该找出为什么这个隐藏的第一个行会解析它。
可能的解决方案:
如果您知道任何HTML编码可以伪造不会出现的字符,它至少会检查一个字符才能开始解析该连字符/破折号(-)。和--我尝试过使用下划线(_) --它也能工作。我会继续玩但是
( b) *如果*您可以尝试将其作为第一行,这将是非常棒的--在顶部做一个空行,其中包含一些内容,然后将第二行作为破折号
Working CODE: (In your JSFiddle - change your TBODY to this one and this should work man.
<tbody>
<tr style="display:none;">
<td>foobar</td>
</tr>
<tr>
<td>-</td>
</tr>
<tr>
<td>B</td>
</tr>
<tr>
<td>C</td>
</tr>
</tbody>我希望这到目前为止有帮助。
干杯,
发布于 2012-03-20 13:41:49
实际上,当tablesorter试图确定每一列中包含什么样的数据时,它会与破折号混淆.是短信还是减号?如果运行将debug设置为true的插件,您将看到它将解析器设置为digit。这是一个更新演示。
因此,最好的非恶意解决方案是将头解析器设置为文本:
$(".tableresult").tablesorter({
headers: {
0: { sorter:'text' }
}
});最后,请不要使用$().ready(function(){});作为文档就绪函数。在最新版本的jQuery中,它仍然受到支持,但是它是不建议才能使用,而且支持很可能在将来被删除。使用$(function(){})代替。
发布于 2012-03-16 07:43:31
不过,我不太喜欢tablesorter,但我发现,在您的示例中,一个简单的解决方法就是总是插入一个隐藏的tr、td并将A放在顶部:
<tr style="display:none">
<td>A</td>
</tr> https://stackoverflow.com/questions/9733450
复制相似问题