我正在尝试让jQuery Tablesorter插件与嵌套表一起使用,其中内部和外部表都是可排序的。外部表的每一行通常包含一个按钮,当单击该按钮时,会在其下方刚好显示隐藏的内部表(虽然出于简单起见,我在下面的HTML中跳过了按钮,使所有内容最初都可见)。
内部表位于具有“expand-child”类的行中,这告诉Tablesorter在排序时将其与其上面的行保持在一起。这基本上是有效的,但是当单击外部表标题时,它们并没有正确地突出显示,并且内部表根本没有排序。
我知道此SO问题,并且其中一种解决方案是禁用内部表的排序,但我特别希望外部和内部表都是可排序的。
我的HTML如下,我还创建了一个jsfiddle来显示问题。感谢您的任何帮助。
内部表位于具有“expand-child”类的行中,这告诉Tablesorter在排序时将其与其上面的行保持在一起。这基本上是有效的,但是当单击外部表标题时,它们并没有正确地突出显示,并且内部表根本没有排序。
我知道此SO问题,并且其中一种解决方案是禁用内部表的排序,但我特别希望外部和内部表都是可排序的。
我的HTML如下,我还创建了一个jsfiddle来显示问题。感谢您的任何帮助。
<table class="tablesorter">
<thead>
<tr>
<th>Make</th>
<th>Model</th>
</tr>
</thead>
<tbody>
<tr>
<td>Honda</td>
<td>Accord</td>
</tr>
<tr class="expand-child">
<td colspan="2" style="padding: 0 30px 0 30px;">
<table class="tablesorter">
<thead>
<tr>
<th>Doors</th>
<th>Colors</th>
</tr>
</thead>
<tbody>
<tr>
<td>Honda 2-Door</td>
<td>Honda Red</td>
</tr>
<tr>
<td>Honda 4-Door</td>
<td>Honda Blue</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td>Toyota</td>
<td>Camry</td>
</tr>
<tr class="expand-child">
<td colspan="2" style="padding: 0 30px 0 30px;">
<table class="tablesorter">
<thead>
<tr>
<th>Doors</th>
<th>Colors</th>
</tr>
</thead>
<tbody>
<tr>
<td>Toyota 2-Door</td>
<td>Toyota Yellow</td>
</tr>
<tr>
<td>Toyota 4-Door</td>
<td>Toyota Green</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
expand-child
改为tablesorter-childRow
。我已经在上面的演示中更新了。正如@RusselG所提到的,我已经将默认的selectorHeaders
更改为'> thead th, > thead td'
。 - Mottie$('table')
目标所有三个表格 - [尝试这个](http://jsfiddle.net/Mottie/P2DsY/85/)。而且,由于您正在使用我的 tablesorter 分支(我想),所以您可以在标题单元格中使用sorter-false
作为类名,而不是{sorter:false}
; 我正在努力摆脱使用 metadata 插件。 - Mottie