jtrery tablesorter在.trigger之后复制行(' sorton',[dynamicSorting])

时间:2016-04-12 06:35:33

标签: jquery tablesorter

根据This thread,我使用了.trigger('update'),并根据this fiddle应用了.trigger('sorton', [dynamicSorting]);

排序工作正常,但它重复行并将其预先添加到表中。

我的所有表格html都是动态的,我会像它一样追加它。

$('table.table tbody, table.table thead').empty(); // This was added later to remove existing rows.
$("#success_table_id").html(successful_html);
$("#failure_table_id").html(failure_html);
$("#manual_table_id").html(manual_html);  

我知道这不是足够的信息,但希望有人已经面对这个并将其整理出来。

注意:我正在使用tablesorter 2.0.5。

1 个答案:

答案 0 :(得分:2)

原始的tablesorter在更新完成后不提供回调,因此您最好的选择是使用setTimeout来触发度假胜地(demo):

$('table').tablesorter();

$('button').click(function() {
    var tbl = '<tr>...</tr>';
    var sorting = $('table')[0].config.sortList;

    $('table').find('tbody').html(tbl);
    $('table').trigger('update');
    setTimeout(function(){
        $('table').trigger('sorton', [sorting]);
    }, 200);
});

如果您使用我的fork of tablesorter,如果resort option设置为true(默认设置)(demo),则会自动使用内容:

$('table').tablesorter({
    theme: 'blue',
    sortList: [[1,0]],
    resort: true
});

$('button').click(function() {
    var tbl = '<tr>...</tr>';
    $('table')
        .find('tbody')
        .html(tbl)
        .trigger('update');
});