Ответ 1
Я считаю, что вы можете инициировать обновление, используя что-то вроде:
$(table).trigger("update")
Я использую плагин jQuery tableSorter на странице.
Unfortunatley, таблица, которая сортируется, динамически модифицируется, и когда я сортирую после добавления элемента, элемент исчезает, восстанавливая таблицу до состояния, в котором она была, когда был создан tableSorter.
Можно ли каким-либо образом заставить tableSorter повторно просмотреть страницу, чтобы эти новые элементы были отсортированы правильно?
Я считаю, что вы можете инициировать обновление, используя что-то вроде:
$(table).trigger("update")
Кажется, вы правы.
$(table).trigger("update"); $(table).trigger("appendCache");
делает трюк.
В качестве примечания, API-интерфейс tablesorter изменился в какой-то момент, поэтому все изменилось, а также привязка события. Мое самое большое зависание пыталось понять, почему некоторые вещи работали, а другие - нет, и это было из-за неправильной версии плагина, несмотря на то, что не было очевидного различия.
$(table).trigger("update");
выдает ошибку
Uncaught TypeError: Cannot read property 'rows' of undefined
Итак, есть функция jquery .ajaxStop()
, где вызывается tablesorter()
. Не вызывайте tablesorter в .ready()
jQuery(document).ajaxStop(function(){
jQuery("#table_name").tablesorter();
})
который выполнял работу
Для тех новичков, которые мне нравятся, сортируя динамически сгенерированную таблицу, вот решение. Ответ, приведенный ранее, верен, но где вы размещаете эту команду?
$('#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');