идеология
Сделал дубликат вывода фильтра для повышения юзабилити.
Item много и страница длинная получается. Хочу предоставить пользователю возможность повторной сортировки вконце страницы.
задача
Сделать пункты активными по клику и в верхнем и нижнем списках.
детали
Оригинальный код для одного списка сортировки:
$('.filter li a').on('click', function(event){
var $self = $(this);
var $this = $(this).parent();
if($this.hasClass('active')) {
return;
}
$self.closest('ul').children().removeClass('active');
$self.parent().addClass('active');
$container.shuffle( 'shuffle', $this.data('group') );
event.preventDefault();
});
Попытка решения задачи:
var $sortlist = $('.item-sort a');
function unit() {
var clikednax = (function() {
$sortlist.each(function() {
var $self = $(this);
$self.closest('ul').children().removeClass('active');
$self.parent().addClass('active');
});
return false;
});
$sortlist.on('click', function(event) {
var $this = $(this).parent();
if ($this.hasClass('active')) {
return;
}
clikednax();
$container.shuffle('shuffle', $this.data('group'));
event.preventDefault();
});
}
unit();
При нажатии на элемент добавляется класс .active в верхнем и нижнем фильтре. Но .each() пробегает по циклу и останавливается на последнем элементе
смотреть jsfiddle
var $this = $(this).parent();
// переменная должна быть обязательно с методом .parent()
// иначе shuffle.js отказывается сортировать item
Как остановиться на "кликнутом" элементе? Прошу помощи.