Использование jQuery tableSorter для динамически модифицированной таблицы - PullRequest
21 голосов
/ 29 октября 2008

Я использую плагин jQuery tableSorter на странице.

К сожалению, сортируемая таблица динамически изменяется, и когда я сортирую после добавления элемента, элемент исчезает, восстанавливая таблицу до состояния, в котором она находилась при создании tableSorter.

Есть ли способ заставить tableSorter повторно сканировать страницу, чтобы эти новые элементы были отсортированы правильно?

Ответы [ 4 ]

25 голосов
/ 29 октября 2008

Я считаю, что вы можете запустить обновление, используя что-то вроде:

$(table).trigger("update")
13 голосов
/ 12 ноября 2008

Кажется, вы правы.

$(table).trigger("update");
$(table).trigger("appendCache");

делает свое дело.

Как примечание, API таблиц в некоторый момент изменился, поэтому изменились и эти вещи, а также привязка событий. Мое самое большое зависание было попытка выяснить, почему некоторые вещи работали, а другие нет, и это было из-за неправильной версии плагина, несмотря на отсутствие очевидных различий.

4 голосов
/ 15 июня 2012

Ошибка $(table).trigger("update");

    Uncaught TypeError: Cannot read property 'rows' of undefined 

Итак, есть функция jquery .ajaxStop(), где вызывается tablesorter(). Не вызывайте TableSorter в .ready()

    jQuery(document).ajaxStop(function(){
      jQuery("#table_name").tablesorter();
    })

который сделал работу

2 голосов
/ 18 февраля 2017

Для тех новичков, как я, которые сталкиваются с проблемой сортировки динамически генерируемых таблиц, вот решение. Ответ, данный ранее, верен, но где вы разместите эту команду?

$('#tableId').tablesorter().trigger('update');

Вам нужно разместить его, как только вы добавите данные в таблицу. Ex в моем случае

var tableData = "<thead><tr><th>Name</th><th>Age</th></thead><tbody><tr><td>Izaki</td><td>24</td><tr><tr><td>Serizawa</td><td>25</td></tr>";
$('#tableId').html('tableData');
$('#tableId').tablesorter().trigger('update');
...