Javascript 具有三列的简单表排序-跟踪列和顺序

Javascript 具有三列的简单表排序-跟踪列和顺序,javascript,jquery,Javascript,Jquery,我有三个表头,每个表头都有ID:截止日期列,持续时间列,以及说明列 每个都有一个“headerSort”类。我现在要做的是,单击其中一个标题后:确定单击的列,然后在升序和降序之间交替。我遇到的主要问题是在单击新列时返回默认排序(升序)。现在我有: $(document).ready(function(){ var order; var column; $('.headerSort').on('click', funct

我有三个表头,每个表头都有ID:截止日期列持续时间列,以及说明列

每个
都有一个“headerSort”类。我现在要做的是,单击其中一个标题后:确定单击的列,然后在升序和降序之间交替。我遇到的主要问题是在单击新列时返回默认排序(升序)。现在我有:

$(document).ready(function(){

            var order;
            var column; 

            $('.headerSort').on('click', function(){
                var column = $(this).attr('id');
                if (order=='ascending'){
                    order = 'descending';
                } else {
                    order = 'ascending'; 
                }

                alert (order);
                // deadline_column
                // duration_column
                // description_column

                // switch(column){
                //  case 'deadline_column':
                //  break;

                //  case 'duration_column':
                //  break;

                //  case 'description_column':
                //  break;
                // }

            });

我想不出一个方法来做到这一点,而不是过于冗长

像这样的东西怎么样

$(document).ready(function(){

        var order;
        var column; 

        $('.headerSort').on('click', function(){
            var newColumn = $(this).attr('id');
            if(column !== newColumn){
                column = newColumn;
                order = 'ascending';
            }
            else{
                if (order=='ascending'){
                    order = 'descending';
                } else {
                    order = 'ascending'; 
                }
            }

            alert (order);
        });
});

您可以尝试使用一个简单的插件来为您实现这一点。Tablesorter是一个轻量级jquery插件,可以利用它,谢谢!然而,我正在尝试在没有任何插件的情况下完成这项工作。非常感谢你!