Я использую плагин jQuery tablesorter, чтобы пользователи могли сортировать таблицы данных на нашем сайте. Недавно я наткнулся на область, где несколько таблиц, использующих сортировщик таблиц, должны были отображаться на одной странице, у меня не было никаких проблем с этим, и плагин tableorter работал отлично. Несколько пользователей обратились к нам с просьбой иметь возможность сортировать все таблицы одновременно, и это хорошо, поскольку все таблицы имеют одинаковую структуру, просто разные данные в них. Вот пример для таблицы 1:
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Bob</td>
<td>24</td>
</tr>
<tr>
<td>1</td>
<td>James</td>
<td>33</td>
</tr>
</tbody>
</table>
Пример для таблицы 2:
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>5</td>
<td>PJ</td>
<td>28</td>
</tr>
<tr>
<td>1</td>
<td>Sue</td>
<td>39</td>
</tr>
</tbody>
</table>
Итак, как вы можете видеть, таблицы похожи, но отображают разные данные. Проблема заключалась в том, как разрешить пользователям сортировать все таблицы одновременно, но позволить им по-прежнему сортировать таблицы по отдельности, поскольку они могут захотеть это сделать. Мы пришли к мысли, что если они отсортируют первую таблицу на странице, мы хотели бы использовать это событие в качестве нашего указания, что они хотят отсортировать все таблицы на странице в той же структуре сортировки, что и первая. Мой главный вопрос: как бы кто-то это сделал? Я думаю, что нашел лучшее место для этой работы, виджеты табличного сортировщика, но, похоже, не могу получить последний кусок головоломки на месте.
Вот то, что у меня сейчас есть для моего виджета и регистрационного кода виджета:
$(function() {
$("table:not(:first)").tablesorter();
$.tablesorter.addWidget({
id: "tableForceSort",
format: function (table) {
if (table.config.sortList.length > 0) {
$('table:not(:first)').trigger("sorton", table.config.sortList);
}
}
});
$("table:first").tablesorter({
widgets: ['tableForceSort']
});
});
Как вы можете видеть, я добавляю сортировщик таблиц ко всем таблицам на странице, но делаю отдельную регистрацию для первой таблицы, чтобы я мог добавить специальный виджет в эту таблицу для принудительной сортировки остальных таблиц. на странице. Это все работает, проблема возникает для меня, когда я на самом деле пытаюсь отсортировать таблицу, и она запускает событие триггера, это приводит к разрыву страницы, и я не могу понять, почему. Если у кого-то есть какой-то способ исправить это или некоторые другие идеи о том, как решить эту проблему, пожалуйста, дайте мне знать.
Спасибо