使用Tablesorter使用Ajax刷新表

时间:2013-12-19 16:09:34

标签: ajax tablesorter

我有一个使用AJAX刷新的表。我想将TableSorter应用于此表。

我是jQuery的新手。从AJAX成功返回后,我这样做了:

   success: function(html)
        {
        jQuery("#animalsinexhibit").html(html);
            jQuery("#animalsinexhibit").tablesorter({
                   debug          : true,
                   widgets        : ['zebra', 'columns'],
                   usNumberFormat : false,
                   sortReset      : true,
                   sortRestart    : true
           });
        },

这在页面最初显示时(即第一次从AJAX调用返回)时工作正常,但是第二次AJAX返回时,我得到以下内容,并且没有出现TableSort样式和标题排序图标:

stopping initialization! No table, thead, tbody or tablesorter has already been initialized

我也试过使用以下内容但没有成功:

var resort = true;
jQuery("#animalsinexhibit").trigger("update", [resort]);

在AJAX数据上附加TableSorter的正确方法是什么?

感谢。

1 个答案:

答案 0 :(得分:4)

看起来你正在使用我的forkorter fork,如果是的话,那么请尝试以下方法:

在文档就绪函数中初始化tablesorter(如果是空表,则可以正常)

jQuery("#animalsinexhibit").tablesorter({
    debug          : true,
    widgets        : ['zebra', 'columns'],
    usNumberFormat : false,
    sortReset      : true,
    sortRestart    : true
});

然后在ajax调用中,因为您要替换整个表内容(包括thead内容),请使用updateAll method

success: function(html) {
    jQuery("#animalsinexhibit")
        .html(html)
        .trigger('updateAll', [resort]);
},