Подтвердить что ты не робот

Использование jQuery tableSorter в динамически модифицированной таблице

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

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

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

4b9b3361

Ответ 1

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

$(table).trigger("update")

Ответ 2

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

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

делает трюк.

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

Ответ 3

$(table).trigger("update"); выдает ошибку

    Uncaught TypeError: Cannot read property 'rows' of undefined 

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

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

который выполнял работу

Ответ 4

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

$('#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');