Работает. «Z» был заменен во внутреннем кеше.
Хотя вы, возможно, потребуется включить true
флаг выполнить глубокий удлиняет:
$.extend(true, $.tablesorter.characterEquivalents, { ... });
Заканчивать это демо (вид, чтобы увидеть значения столбцов в окне Firebug): http://jsfiddle.net/Gk43v/19/
Обновление: Хорошо, проблема представляется фактическим порядком сортировки. Проблема в том, что сортировка по умолчанию выполняется с использованием значения ASCII символов, так что Š и Ž сортируются после A-Z без какой-либо эквивалентной замены символов. Функция заменяет «S» для «Š» и «Z» для «Ž», делая их эквивалентными и неотличимыми от их несогласных букв.
Если вы действительно хотите, то, чтобы поддерживать необходимый порядок символов, вам нужно использовать другой текстовый сортировщик, как sugarjs, который позволяет установить порядок сортировки:
Array.AlphanumericSortOrder = 'AaÁáBbCcDdÐðEeÉéĘęFfGgHhIiÍíJjKkLlMmNnOoÓóPpQqRrSsTtUuÚúVvWwXxYyÝýZzÞþÆæÖö';
Вы можете использовать textSorter
option для использовать вид сахара массив для этого столбца - here is a demo showing an Icelandic sort
$("table").tablesorter({
theme : 'blue',
ignoreCase : false,
textSorter : {
// alphanumeric sort from sugar (http://sugarjs.com/arrays#sorting)
// for the first column (zero-based index)
0 : Array.AlphanumericSort
}
});
Update # 2: Поскольку чешский алфавит является немного более сложным, у ou'll нужно заменить «CH» на placholder, потому что Sugar разрешает только одиночные символы в определении порядка сортировки.
Таким образом, в этом примере, я заменил «CH» с «ае» (updated demo)
$(function() {
Array.AlphanumericSortOrder = 'AaÁáÄäBbCcČčDdĎďEeÉéĚěFfGgHhÆæIiÍíJjKkLlMmNnŇňOoÓóÖöPpQqRrŘřSsŠšTtŤťUuÚúŮůÜüVvWwXxYyÝýZzŽž';
Array.AlphanumericSortIgnoreCase = true;
// see https://github.com/andrewplummer/Sugar/issues/382#issuecomment-41526957
Array.AlphanumericSortEquivalents = {};
// replace "Ch" and "ch" with a placeholder... it can be anything
// in this example, I'm replacing ch with "æ" and Ch or CH with "Æ"
// these characters have been added to the Array.AlphanumericSortOrder
// between "h" and "I" - according to http://en.wikipedia.org/wiki/Czech_orthography
var replaceCH = function(node) {
return $(node).text()
.replace(/(Ch|CH)/g, '\u00c6')
.replace(/ch/g, '\u00e6');
};
$("table").tablesorter({
theme: 'blue',
// table = table object; get config options from table.config
// column is the column index (zero-based)
ignoreCase: false,
textExtraction : {
1: replaceCH,
3: replaceCH
},
textSorter: {
1 : Array.AlphanumericSort, // alphanumeric sort from sugar (http://sugarjs.com/arrays#sorting)
3 : Array.AlphanumericSort
}
});
});
Я пытаюсь использовать функцию characterEquivalents
заменить строку, но и в настоящее время поддерживает только одиночные замены символов (Я исправлю это в будущей версии), поэтому на данный момент я использую настраиваемую функцию textExtraction
.
Вторая проблема, о которой вы сообщили, может быть решена путем запуска "update" method в таблице после завершения вызова ajax и отображения таблицы.
$('table').trigger('update');
Мои страницы здесь http://www.sl-skole.cz/eshop.html –