jQuery TableSorter 在使用 Ajax 更新数据库更新后<td>不排序

jQuery TableSorter not sorting after <td> update database update using Ajax?

本文关键字:更新 排序 td 数据库 TableSorter jQuery Ajax      更新时间:2023-09-26

我正在实施一个评级系统,用户可以在其中对条目进行排名。每个条目都有一个等级,初始等级为 0。我将此信息存储在数据库中,然后将此表打印在页面上,并使用jQuery表排序器类,因此所有条目都按排名排序。

当用户对条目进行向上/向下排名时,我会更新数据库中的排名,然后使用 ajax 显示更新的排名。每个条目都有一个向上和向下按钮。

我已经初始化了表排序器:

$(function() {
    $('#list_sort').tablesorter({ 
        sortList: [[0,0]],     // allow sorting on the ranking column only
        headers: {
            1: {
                sorter: false 
            }, 
            2: { 
                sorter: false 
            }, 
            3: { 
                sorter: false 
            }
        }
    })
});

向上和向下按钮有一个onClick事件,该事件调用一个更新数据库的函数,然后使用ajax更新排名,但我想在更新后对其进行排序。

我尝试了几种方法,包括:

$('#list_sort').trigger("update");

lastSortList = $("#list_sort")[0].config.sortList;
$("#list_sort").trigger("#list_sort", [lastSortList]);
$('#list_sort').tablesorter();

但似乎没有任何效果。任何帮助,不胜感激。

我有一个解决方案,但我认为这不是一个好的解决方案。我用了setTimeout 函数在用户排名和数据库更新后,它工作。

setTimeout(function() {
        $('#list_sort').tablesorter({ 
        sortList: [[0,1]],
        headers: {
            1: {
                sorter: false 
            }, 
            2: { 
                sorter: false 
            }, 
            3: { 
                sorter: false 
            }
        }
    })
    }, 50);