@selo

Клики по ссылкам в сортировке?

Здравствуйте.
Помогите довести до ума скрипт.
Сделал чтобы кликая по Name менялись классы, а c остальным не могу разобраться.

Требуется чтобы кликая по Test 1 или Test 2 активные классы (asc desc) с Name сбрасывались, а на кликнутую ссылку присваивался класс active, тоже самое и обратно, при клике на Name, убирался класс active с ссылок Test 1 или Test 2

https://jsfiddle.net/94cLmwd3/1/
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно в глобальной переменной хранить значение активного элемента, а в 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы