Плагин JQuery tablesorter - обновляет сортировку после измененных строк - PullRequest
4 голосов
/ 26 октября 2010

Я использую tableorter 2.0 и обновляю значение ячеек с помощью ajax. После вызова мне нужно будет снова упорядочить строки, но триггер $ ('# thisTable'). (Update) мне не поможет.

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

 $('#thisTable').tablesorter({
   textExtraction: function(node) {
     return node.getElementsByTagName('input')[0].value; 
   }
 });

Любая помощь будет оценена.

- Кри

Ответы [ 4 ]

3 голосов
/ 26 октября 2010

Вы можете найти ответ в таблице сортировщика документы . Вы должны вызвать другое событие sorton.

1 голос
/ 15 февраля 2014

У меня небольшое изменение в исходном коде. Я добавил параметр в обработчик события обновления, чтобы запросить сортировку.

$("#MyTable").trigger('update') будет работать как обычно.

$("#MyTable").trigger('update', true) запросит сортировку после обновления.

$this.bind("update", function (e, sort) {
   var me = this;
   setTimeout(function () {
       // rebuild parsers.
       me.config.parsers = buildParserCache(
       me, $headers);
       // rebuild the cache map
       cache = buildCache(me);
       // ADDED
       if (sort) $(me).trigger('sorton', [me.config.sortList]);
   }, 1);
});
1 голос
/ 23 января 2012

Это мой код

//append some content to the tbody
$('table').trigger('update');    
var $sort = $('table').get(0).config.sortList;
$("table").trigger("sorton",[$sort]); 

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

0 голосов
/ 05 января 2017

Что касается реализации события «обновление», оно выполняет обновление по истечении времени ожидания 1 мс.eather эта функция должна быть переписана в сортировщике таблиц, или с помощью обратного вызова.

$this.bind("update", function () {
  var me = this;
  setTimeout(function () {
    // rebuild parsers.
    me.config.parsers = buildParserCache(
    me, $headers);
    // rebuild the cache map
    cache = buildCache(me);
}, 1);
...