在动态修改的表上使用jQuery tableSorter
-
05-07-2019 - |
题
我在页面上使用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()
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');
不隶属于 StackOverflow