在动态修改的表上使用jQuery tableSorter

时间:2008-10-29 15:45:37

标签: jquery tablesorter

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

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

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

4 个答案:

答案 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()

中调用tablesorter
    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');