JQuery tablesorter插件 - 修改后的行更新排序

时间:2010-10-26 07:37:01

标签: jquery sorting tablesorter

我使用tablesorter 2.0,并使用ajax更新单元格的值。通话结束后,我需要再次订购行,但$('#thisTable')。触发器('update')对我没有帮助。

我处理单元格内的标记,但这不是问题。

 $('#thisTable').tablesorter({
   textExtraction: function(node) {
     return node.getElementsByTagName('input')[0].value; 
   }
 });

任何帮助都将不胜感激。

- 克里

4 个答案:

答案 0 :(得分:3)

您可以在表格分类器docs中找到答案。您必须触发另一个事件sorton

答案 1 :(得分:1)

这是我的代码

//append some content to the tbody
$('table').trigger('update');    
var $sort = $('table').get(0).config.sortList;
$("table").trigger("sorton",[$sort]); 

在向表体添加一些行后调用上面的内容。我能够看到$ sort值,但是触发器函数没有对新添加的行进行排序。

答案 2 :(得分:1)

我的源代码有一点变化。我已经在update事件处理程序中添加了一个参数来请求排序。

$("#MyTable").trigger('update')将照常运作。

$("#MyTable").trigger('update', true)会在更新后要求排序。

$this.bind("update", function (e, sort) {
   var me = this;
   setTimeout(function () {
       // rebuild parsers.
       me.config.parsers = buildParserCache(
       me, $headers);
       // rebuild the cache map
       cache = buildCache(me);
       // ADDED
       if (sort) $(me).trigger('sorton', [me.config.sortList]);
   }, 1);
});

答案 3 :(得分:0)

关于"更新"的实施事件, 它会在超时1ms后执行更新。 这个函数应该在表分类器中重写,使用回调进行eather。

$this.bind("update", function () {
  var me = this;
  setTimeout(function () {
    // rebuild parsers.
    me.config.parsers = buildParserCache(
    me, $headers);
    // rebuild the cache map
    cache = buildCache(me);
}, 1);