访问排序列和方向

时间:2012-10-17 21:10:33

标签: jquery

我有一个很好的jQuery数据表发生了可排序的列。捕获的请求1)单击的列和2)单击时的排序方向。我已遍历datatables对象中的各种排序相关对象,但似乎无法获得这两个奇异值。

出于这个问题的目的,我希望最终结果类似于警报('您点击列'+列)和警报('点击时的排序方向是'+排序方向)。

我如何做到这一点?一如既往,提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题是正确的,那么基本上你只需要 1 特定的信息来完成这个:表格中行的初始位置(用户正在排序)。

有不同的方法可以实现这一点,但最简单的方法是在生成表时简单地为每一行设置一个数据属性以保存该行的初始位置。

示例:

$.each($YOURTABLE.children(), function(idx, val) { val.data('position', idx);});

现在,您需要做的就是 sortstop 事件,获取该值并将其与该行的新位置进行比较:

$YOURTABLE.bind('sortstop', function(event, ui) {
    //$(ui.item[0]) selects the user-selected row
    var oldPosition = $(ui.item[0]).data('position'),
        newPosition;    

    //get row's new position
    $.each($YOURTABLE.children(), function(idx, val) {
        if($(val) === $(ui.item[0]))
            newPosition = idx; //store new position
    }
    //now compare
    if(oldPosition > newPosition)
        ////alert user row (oldPosition) moved up
    else if(oldPosition < newPosition)
        ////alert user row (oldPosition) moved down

    //refresh all row positions using first code example
} 

});

希望这应该指向正确的方向。