2

我有一个 tablesorter 表,其中我有一个 TD 每 20 秒更新一次,随着数据的变化,我从数据库中提取新值,使用以下代码:

window.setInterval(function(){
    $("td.odds span").each(function(){
        var id=$(this).parent().attr("rel");
        $(this).load("/td.php?id="+id);
    });
},20000);

我想知道的是是否有可能在此之后重新排序表格,以防任何值发生变化(如果有的话,现在表格实际上有可能是错误的顺序)。

我尝试添加以下代码但没有成功:

var sorting=[[11,0]]; 
$("table.formguide").trigger("sorton",[sorting]);

和:

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

但没有成功。任何帮助表示赞赏。

4

2 回答 2

1

您可以尝试使用该updateCell方法专门针对修改后的单元格,然后应用一种sorton方法来使用该列。

var cell = $('table.formguide td.odds span').each(function(){
    $('table.formguide').trigger('updateCell', [ this ]);
});
$('table.formguide').trigger('sorton', [ [[11,0]] ]);

或者,您可以查看我的 tablesorter 分支,它修改了updateCell方法以包含一个标志以使用当前排序自动恢复

var last,
    // resort is true by default, but we set it to false until all cells have updated
    resort = true,
    // callback function run on the last updated cell
    callback = function(){ /* do something after each updateCell */ },
    // updated cells
    $cells = $('table.formguide td.odds span'),
    len = $cells.length

$cells.each(function(i){
    last = i === len;
    // don't resort or trigger a callback until we're on the last cell
    $('table.formguide').trigger('updateCell', [ this, last ? resort : false, last ? callback : null ]);
});
于 2013-10-18T13:37:04.333 回答
0

改为使用updateAll,有一个使用 tablesorter v2.8的示例。

  var resort = true, // re-apply the current sort
    callback = function(){
      // do something after the updateAll method has completed
    };

  // let the plugin know that we made a update, then the plugin will
  // automatically sort the table based on the header settings
  $("table").trigger("updateAll", [ resort, callback ]);
于 2014-05-09T08:37:12.690 回答