22

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

不幸的是,正在排序的表格是动态修改的,当我在添加元素后进行排序时,该元素消失了,将表格恢复到创建 tableSorter 时的状态。

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

4

4 回答 4

26

我相信您可以使用以下方式触发更新:

$(table).trigger("update")
于 2008-10-29T15:47:59.957 回答
14

看来你是对的。

$(table).trigger("更新");
$(table).trigger("appendCache");

成功了。

需要注意的是,tablesorter API 在某些时候发生了变化,因此这些事情以及事件绑定都发生了变化。我最大的困扰是试图弄清楚为什么有些东西有效而另一些无效,这是由于插件版本错误,尽管没有明显的区别。

于 2008-11-12T19:27:01.083 回答
4

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

    Uncaught TypeError: Cannot read property 'rows' of undefined 

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

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

哪个完成了工作

于 2012-06-15T14:07:38.250 回答
2

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

$('#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');
于 2017-02-18T09:40:29.037 回答