Używam jQuery Tablesorter i mam problem z kolejnością, w jakiej analizatory są stosowane względem kolumn tabeli. Dodaję niestandardowy analizator składni do obsługi waluty o wartości -3,33 USD.Niestandardowy analizator składni JQuery Tablesorter
$.tablesorter.addParser({
id: "fancyCurrency",
is: function(s) {
return /^\$[\-]?[0-9,\.]*$/.test(s);
},
format: function(s) {
s = s.replace(/[$,]/g,'');
return $.tablesorter.formatFloat(s);
},
type: "numeric"
});
Problem polega na tym, że wbudowany analizator walut ma pierwszeństwo przed moim własnym analizatorem składni. Mogę umieścić parser w samym kodzie tablesorter (przed parserem walut) i działa on poprawnie, ale nie jest to bardzo łatwe w utrzymaniu. Nie mogę określić sortownika ręcznie przy użyciu czegoś takiego:
headers: {
3: { sorter: "fancyNumber" },
11: { sorter: "fancyCurrency" }
}
ponieważ kolumny tabeli są generowane dynamicznie z danych wejściowych użytkownika. Domyślam się, że jedną z opcji byłoby określenie sortownika do użycia jako klasy css i użycie JQuery do jawnego określenia sugerowanego sortera, takiego jak this question, ale jeśli to możliwe, wolę trzymać się dynamicznego wykrywania.
Czy to się nie udaje, gdy są tylko dodatnie wartości walutowe, czy zawsze były wartości ujemne? –
@Tim: sprawdź moją odpowiedź i mam nadzieję, że będzie przydatna. Dziękuję przyjacielu. – Gaurav123