Вы не сможете легко получить дополнительный аргумент в функцию сортировки массива, которую использует jQuery.fn.sort.
Будет проще использовать две отдельные функции, одну для повышения и одну для снижения, но сохранить фактическое сравнение в третьей функции.
function sortStringAscending(a,b) {
return sortString(a,b,1);
};
function sortStringDescending(a,b) {
return sortString(a,b,-1);
};
function sortString(a,b,direction) {
var h1 = a.innerHTML.toLowerCase();
var h2 = b.innerHTML.toLowerCase();
if(h1 > h2) {
r = 1*direction;
} else if(h2 > h1) {
r = -1*direction;
}
return r;
};
Также обратите внимание, что вы можете просто сравнить две строки, нет необходимости сравнивать их символ за символом, если только вы не хотите иметь непредсказуемый порядок сортировки для таких элементов, как "abc" и "abcd".
Тогда вы должны быть в состоянии сделать
$('ol li').sort(sortStringAscending).appendTo('ol');
$('ol li').sort(sortStringDescending).appendTo('ol');