我有一个使用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的正确方法是什么?
感谢。
答案 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]);
},