Using jQuery tableSorter on dynamically modified table

前端 未结 4 1531
眼角桃花
眼角桃花 2020-12-09 09:17

I am using the jQuery tableSorter plugin on a page.

Unfortunatley, the table that is being sorted is dynamically modified, and when I sort after adding an element, t

相关标签:
4条回答
  • 2020-12-09 09:32

    For those Newbies like me who are facing issue with sorting dynamic generated table, here is the solution. The answer previously given are correct, but where do you place this command?

    $('#tableId').tablesorter().trigger('update');
    

    You need to place it as soon as you've appended the data to the table. Ex in my case

    var tableData = "<thead><tr><th>Name</th><th>Age</th></thead><tbody><tr><td>Izaki</td><td>24</td><tr><tr><td>Serizawa</td><td>25</td></tr>";
    $('#tableId').html('tableData');
    $('#tableId').tablesorter().trigger('update');
    
    0 讨论(0)
  • 2020-12-09 09:37

    Seems you are correct.

    $(table).trigger("update");
    $(table).trigger("appendCache");
    

    does the trick.

    As a note, the tablesorter API changed at some point, so these things got changed, as well as the event binding. My biggest hangup was trying to figure out why some things worked and others did not, and it was due to having a wrong version of the plugin, despite there being no obvious distinction.

    0 讨论(0)
  • 2020-12-09 09:43

    I believe you can trigger an update using something like:

    $(table).trigger("update")
    
    0 讨论(0)
  • 2020-12-09 09:58

    The $(table).trigger("update"); throws error

        Uncaught TypeError: Cannot read property 'rows' of undefined 
    

    So, there is a jquery function .ajaxStop() where tablesorter() is called. Do not call tablesorter in .ready()

        jQuery(document).ajaxStop(function(){
          jQuery("#table_name").tablesorter();
        })
    

    which did the job

    0 讨论(0)
提交回复
热议问题