Как сделать сортируемыми несколько таблиц HTML?

#javascript #jquery #html #ajax

#javascript #jquery #HTML #ajax

Вопрос:

В настоящее время я использую сортировщик таблиц javascript с открытым исходным кодом: http://mottie.github.io/tablesorter/docs /

Проблема, с которой я сталкиваюсь, заключается в том, что я динамически добавляю таблицы на свою страницу в ответ на нажатие пользователем кнопки. Только самая последняя добавленная таблица становится сортируемой, а предыдущие таблицы больше не сортируются после добавления новой таблицы. В настоящее время у меня есть этот код в конце создания моей таблицы:

  //Make table sortable
        $(document).ready(function () {
            $("#"   thisTable.ID).tablesorter();
        });
  

Я не понимаю, почему старые таблицы теряют сортируемость, если они не перезагружаются. Я только добавляю новую таблицу с другим идентификатором в ранее добавленную таблицу.

Ответ №1:

Вы можете изменить свой селектор на $('table') , и это добавит сортировщик ко всем таблицам. Ваш текущий код будет выполняться только при загрузке страницы, поэтому вам придется выполнять $('table').tablesorter(); строку каждый раз, когда вы динамически добавляете новую таблицу (в обработчике нажатия кнопки).

Однако было бы лучше, если бы вы добавили класс, например, sortedTable к каждой таблице, и создали свой селектор $('.sortedTable') , а не просто $('table') , потому что в какой-то момент вам может понадобиться таблица, которая не отсортирована, а первая версия всегда будет сортировать все таблицы. Вторая версия будет сортировать только те таблицы, которые вы явно помечаете как сортируемые.