我在页面上使用jQuery tableSorter插件。
Unfortunatley,正在排序的表是动态修改的,当我在添加元素后排序时,元素消失,将表恢复到创建tableSorter时的状态。
有什么方法可以强制tableSorter重新扫描页面,以便正确排序这些新元素?
答案 0 :(得分:25)
我相信您可以使用以下内容触发更新:
$(table).trigger("update")
答案 1 :(得分:13)
似乎你是对的。
$(table).trigger("update"); $(table).trigger("appendCache");
诀窍。
作为一个注释,tablesorter API在某些时候发生了变化,所以这些事情发生了变化,以及事件绑定。我最大的困难是试图弄清楚为什么有些东西有效,有些则没有,这是因为插件的版本错误,尽管没有明显的区别。
答案 2 :(得分:4)
$(table).trigger("update");
抛出错误
Uncaught TypeError: Cannot read property 'rows' of undefined
因此,有一个jquery函数.ajaxStop()
,其中tablesorter()
被调用。不要在.ready()
jQuery(document).ajaxStop(function(){
jQuery("#table_name").tablesorter();
})
完成了这项工作
答案 3 :(得分:2)
对于那些像我一样面临排序动态生成表问题的新手,这里是解决方案。 之前给出的答案是正确的,但你在哪里放置这个命令?
foreach ( $finalarray as $key=>$value ){
echo $key;
foreach($value as $innerkey=>$innervalue) {
echo $innervalue['article_title'];
}
}
您需要在将数据附加到表格后立即放置。 在我的案例中
$('#tableId').tablesorter().trigger('update');