0

それぞれ ID を持つ 3 つのテーブルヘッダーあります

それぞれ<th>に「headerSort」のクラスがあります。私が今やろうとしているのは、見出しの 1 つがクリックされると、クリックされた列を特定し、昇順と降順を交互に切り替えることです。私が抱えている主な問題は、新しい列がクリックされたときにデフォルトの並べ替え (昇順) に戻ることです。今私は持っています:

$(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;
                // }

            });

過度に冗長にならないようにこれを行う方法を考え出すことはできません。

4

1 に答える 1

0

このようなものはどうですか?

$(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);
        });
});
于 2012-08-16T21:52:29.063 に答える