我在页面上使用jQuery tableSorter插件。

Unfortunatley,正在排序的表是动态修改的,当我在添加元素后排序时,元素消失,将表恢复到创建tableSorter时的状态。

有什么方法可以强制tableSorter重新扫描页面,以便正确排序这些新元素?

有帮助吗?

解决方案

我相信您可以使用以下内容触发更新:

$(table).trigger("update")

其他提示

似乎你是对的。

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

诀窍。

作为一个注释,tablesorter API在某些时候发生了变化,所以这些事情发生了变化,以及事件绑定。我最大的困难是试图弄清楚为什么有些东西有效,有些则没有,这是因为插件的版本错误,尽管没有明显的区别。

$(table).trigger(" update"); 抛出错误

    Uncaught TypeError: Cannot read property 'rows' of undefined 

因此,有一个jquery函数 .ajaxStop(),其中调用 tablesorter()。不要在 .ready()

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

完成了这项工作

对于那些像我一样面临排序动态生成表问题的新手,这里是解决方案。 之前给出的答案是正确的,但你在哪里放置这个命令?

$('#tableId').tablesorter().trigger('update');

您需要在将数据附加到表格后立即放置它。 在我的案例中

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');
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top