Можно в глобальной переменной хранить значение активного элемента, а в data-атрибуте переключаемых пунктов записывать их текущее состояние сортировки.
var active = undefined; // здесь будет jQuery( активный пункт )
var $sortable = $('a.sortable'); // пунктов с сортировкой потом может быть больше 1
$sortable.data('sort', true); // true == asc, false == desc
$('a.clickme').on('click', function() {
var $el = $(this);
$sortable.removeClass('asc').removeClass('desc'); // у всех убрать сортировку
if( $el.hasClass('sortable')) { // кликнули переключаемый пункт
if( active && $el[0] === active[0]) { // он был уже активен
$el.data('sort', !$el.data('sort')); // изменили сортировку на другую
$el.addClass( $el.data('sort') ? 'asc' : 'desc') // переключили классы соотв.
.removeClass( $el.data('sort') ? 'desc' : 'asc');
} else {
$el.addClass( $el.data('sort') ? 'asc' : 'desc'); // просто добавили правильный класс
}
}
if( active) active.removeClass('active'); // выключить предыдущий активный эл.
active = $el.addClass('active'); // включить активность кликнутого
});
Fiddle