Я пытаюсь получить плагин jQuery Tablesorter для работы с вложенными таблицами, где и внутренние, и внешние таблицы могут быть отсортированы. Каждая строка внешней таблицы обычно содержит кнопку, которая при щелчке показывает скрытую внутреннюю таблицу в строке чуть ниже (хотя я пропустил кнопку в HTML ниже для простоты, делая все изначально видимым).Вложенные таблицы jQuery Tablesorter, все сортируемые
Внутренняя таблица находится в строке с классом «expand-child», которая сообщает Tablesorter о том, чтобы сохранить ее рядом с ней при сортировке. Это в основном работает, но внешние заголовки таблицы не выделяются правильно при нажатии, а внутренняя таблица вообще не сортируется.
Я знаю о this SO question, и это одно решение - отключить сортировку во внутренней таблице, но я хочу, чтобы как внешняя, так и внутренняя таблицы были отсортированы.
Мой 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>
Отлично, спасибо! Поиграв с jsfiddle немного, я вижу, что единственное изменение действительно необходимо добавить параметр tablesorter {selectorHeaders: '> thead> tr> th'}. По умолчанию это «thead th», который, как я понимаю, вызывает проблему, потому что внешняя таблица завершает выбор элементов во всех внутренних таблицах. Знаки> позволяют смотреть на своих прямых детей, а не на всех потомков. Интересно, вместо этого вместо этого должен быть ваш default. В любом случае, еще раз спасибо! –
У меня возникла другая проблема с этим позже, когда я попытался отключить сортировку по первому заголовку столбца. Если вы добавите «headers: {0: {sorter: false}}», он отключит первый столбец всех таблиц, даже вложенных. Чтобы отключить их по отдельности, вместо этого добавьте встроенные метаданные в элемент
Что-то изменилось? Когда я нажимаю на заголовки таблиц в вашей скрипке, он не поддерживает родительские отношения с дочерью. –
Смежные вопросы