2

自昨天以来,我一直在到处寻找解决问题的方法。我有一张桌子,我对我的一些列和一些我没有排序。其中之一是我使用解析器的文本框输入。那我的问题呢?好吧,文本框中的列在我第一次单击该行时进行了排序,但是它们以错误的顺序排序,然后第二次单击它再次进行排序时,它什么也没做。

我认为这很奇怪,并且已经开始检查我的其他 jquery 文件,看看我是否有任何可能阻止这种情况发生的事情,但我想检查我的代码是否正确以及这里有什么更好的地方这样做。

我一直在从这些链接中阅读 tablesorter:

http://mottie.github.io/tablesorter/docs/example-parsers-advanced.html

http://tablesorter.com/docs/

http://tablesorter.com/docs/example-parsers.html

我的代码:

 // custom sorting of value in text input   
 $.tablesorter.addParser({
     id: 'input_text',
     is: function (s) {
            // return false so this parser is not auto detected  
            return false;
         },
         format: function (s) {
            return $(s).attr('value');
         },
         type: 'text'
     });
     // Tablesorter
      if ($(".attendanceList tbody tr").length > 0) {
           $(".attendanceList").tablesorter({ headers: { 
                 1: { sorter: false },
                 2: { sorter: 'input_text' },
                 3: { sorter: false },
                 4: { sorter: false },
                 5: { sorter: false },
                 6: { sorter: false },
                 7: { sorter: false },
                 8: { sorter: false },
                 9: { sorter: false },
                 10: { sorter: false}
           },
           sortList: [[2, 1], [0, 0]]
           });
 }

我的问题图片:

http://imageshack.us/photo/my-images/198/sorterprob.jpg/

编辑:

我忘了提到排序也应该能够对字母进行排序,而不仅仅是数字

4

3 回答 3

1
$(".attendanceList").tablesorter({
     headers: {
        column Number: { sorter: 'digit' } 
     }
 });
于 2013-06-04T07:26:47.407 回答
0

change type: 'text' to type: 'numeric'

于 2013-06-04T07:23:41.303 回答
0

我前段时间解决了这个问题,但忘记更新了。问题是这段代码

return $(s).attr('value') 

给了我一个未定义的值,所以我将其更改为:

return s

并且排序工作。

于 2013-07-15T11:32:09.470 回答