使用Ajax更新数据库更新后jQuery TableSorter没有排序?

时间:2015-06-17 04:12:32

标签: javascript php jquery ajax

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

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

我已经初始化了tablesorter:

$(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();

但似乎没有任何效果。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我有一个解决方案,但我不认为这是一个很好的解决方案。我用了 用户排名后数据库更新并运行后的setTimeout函数。

setTimeout(function() {
        $('#list_sort').tablesorter({ 
        sortList: [[0,1]],

        headers: {
            1: {
                sorter: false 
            }, 
            2: { 
                sorter: false 
            }, 
            3: { 
                sorter: false 
            }
        }
    })
    }, 50);