我在页面上使用 jQuery tableSorter 插件。
不幸的是,正在排序的表格是动态修改的,当我在添加元素后进行排序时,该元素消失了,将表格恢复到创建 tableSorter 时的状态。
有什么方法可以强制 tableSorter 重新扫描页面,以便正确排序这些新元素?
我在页面上使用 jQuery tableSorter 插件。
不幸的是,正在排序的表格是动态修改的,当我在添加元素后进行排序时,该元素消失了,将表格恢复到创建 tableSorter 时的状态。
有什么方法可以强制 tableSorter 重新扫描页面,以便正确排序这些新元素?
我相信您可以使用以下方式触发更新:
$(table).trigger("update")
看来你是对的。
$(table).trigger("更新"); $(table).trigger("appendCache");
成功了。
需要注意的是,tablesorter API 在某些时候发生了变化,因此这些事情以及事件绑定都发生了变化。我最大的困扰是试图弄清楚为什么有些东西有效而另一些无效,这是由于插件版本错误,尽管没有明显的区别。
抛出$(table).trigger("update");
错误
Uncaught TypeError: Cannot read property 'rows' of undefined
因此,有一个 jquery 函数.ajaxStop()
被tablesorter()
调用。不要调用 tablesorter.ready()
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');