Pergunta

Eu estou tentando escrever um analisador personalizado para o plugin jQuery, Tablesorter . A idéia é para ele para classificar os números em ordem decrescente no primeiro clique.

No entanto, quando eu ordenar a tabela, a ordem não muda. Às vezes algumas linhas mover, mas a maioria deles ficar na mesma. Aqui está o código:

$.tablesorter.addParser({
    id: 'desc',
    is: function(s) { return false },
    format: function(s) {
        return 1.0 / parseFloat( s.replace(/,/g,'') );
    },
    type: 'numeric'
});
fino

Os outros analisadores que eu escrevi estão funcionando. Eu tentei 9999 menos o número em vez de 1,0 dividido por isso, no caso de um problema com carros alegóricos (sem sorte).

Foi útil?

Solução

Eu encontrei uma solução. I tinha algumas células vazias em cada coluna, que estavam a ser analisados ??como "NaN". Por esta asneira a ordenação, eu não sei (células em branco foram intermitentemente espaçadas com números regulares, não havia nenhuma ordem para qualquer coisa).

Em suma, este código funciona para a função de formatação:

 format: function(s) {
  if ( s == '' )
   return 0;  
  return -parseInt( s.replace(/,/g,'') );
 }

Outras dicas

Para classificar algo em ordem numérica inversa, para mim o caminho natural para ir é para multiplicar por -1, em vez dos métodos que você tentou.

Como para o próprio analisador, o único aviso diferença que é que você está retornando um número real, enquanto que o nofollow analisador exemplo no site Tablesorter retorna um string. Talvez converter o valor de volta para string antes de retornar ele iria trabalhar?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top