我有一个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");
但没有成功。任何帮助表示赞赏。
答案 0 :(得分:1)
您可以尝试使用updateCell
方法专门定位修改后的单元格,然后应用sorton
方法来求助该列。
var cell = $('table.formguide td.odds span').each(function(){
$('table.formguide').trigger('updateCell', [ this ]);
});
$('table.formguide').trigger('sorton', [ [[11,0]] ]);
或者,您可以查看已修改fork of tablesorter的updateCell
method以包含使用当前排序自动求助的标志
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 ]);
});
答案 1 :(得分:0)
使用updateAll
代替,使用tablesorter v2.8 example。
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 ]);