jquery - TableSort работает только в одном направлении - PullRequest
0 голосов
/ 03 февраля 2012

Это сортирует в одном направлении, но не в другом.Что-то не так с таблицей спецификаций.Было бы замечательно, если бы кто-то мог опубликовать образец HTML с сортировкой, работающей в обоих направлениях, на столбце со значениями в долларах, которые содержат запятые.

// create sorter
<script type="text/javascript" id="js">
    $(document).ready(function() {
        // call the tablesorter plugin
        $("table.tablesorter").tablesorter({
            // enable debug mode
            debug: false
        });
    }); 
</script>

Не уверен, нужен ли здесь префикс (таблица.tableorter):

// add parser through the tablesorter addParser method
<script type="text/javascript" id="js">
$.tablesorter.addParser({
    // set a unique id
    id: 'money',
    is: function(s) {
        // return false so this parser is not auto detected
        return false;
    },
    format: function(s) {
         return s.toLowerCase().replace("\$","").replace(",","");
    },
    // set type, either numeric or text
    type: 'numeric'
});

Не уверен, что здесь нужен table.tablesorter:

// specify column  
$(function() {  
    $("table.tablesorter").tablesorter({  
        headers: {  
            // column to be handled specially
            7: {  
                sorter:'money'  
            }  
        }
    });
});                 
</script>

Вверху таблицы указано следующее:

<table cellspacing="1" class="tablesorter">  
    <thead>  
        <tr>  
            <th>Name</th>  
            <th>Major</th>  
            <th>Gender</th>  
            <th>English</th>  
            <th>Japanese</th>  
            <th>Calculus</th>  
            <th>Overall grades</th>  
            <th>Money</th>  
        </tr>  
    </thead>  
    <tbody>  
        <tr>  
            <td>Student01</td>  
            <td>Languages</td>  
            <td>male</td>  
            <td>80</td>  
            <td>70</td>  
            <td>75</td>  
            <td>bad</td>  
            <td>$1.00</td>  
        </tr>  

1 Ответ

0 голосов
/ 07 марта 2012

Поскольку вы работаете с числами, вам нужно разобрать строку в вещественное число.Измените эту строку в вашем парсере:

format: function(s) {
  return parseFloat( s.toLowerCase().replace("\$","").replace(",","") );
}
...