171 похожих чатов

Короче решил я добить всё таки это дело. Есть кнопки с

фильтрами:
<a href="#" data-sort="ms|price" data-dir="[[+mse2_sort:is=`ms|price:desc`:then=`desc`]]" data-default="desc" class="sort" >По цене <span></span></a>
<a href="#" data-sort="resource|publishedon" data-dir="[[+mse2_sort:is=`resource|publishedon:desc`:then=`desc`]]" data-default="desc" class="sort">По ноовизне <span></span></a>
<a href="#" data-sort="ms|skidka" data-dir="[[+mse2_sort:is=`ms|skidka:desc`:then=`desc`]]" data-default="desc" class="sort sort-sales">По скидке <span></span></a>
<a href="#" data-sort="tv|rating" data-dir="[[+mse2_sort:is=`tv|rating:desc`:then=`desc`]]" data-default="desc" class="sort" >По рейтингу <span></span></a>

Для них я модифицировал клик по сортировке в default.js (custom.js)
$(document).on('click', this.options.sort_link, function () {
if ($(this).hasClass(mSearch2.options.active_class) && $(this).data('dir') == '') {
return false;
}

$(mSearch2.options.sort_link).removeClass(mSearch2.options.active_class);
$(this).addClass(mSearch2.options.active_class);
var dir;
if ($(this).data('dir') == '') {
dir = $(this).data('default');
}
else {
dir = $(this).data('dir') == 'desc'
? 'asc'
: 'desc';
}
if ($(this).attr('data-dir') == $(this).data('default') && $(this).hasClass(mSearch2.options.active_class) && $(this).hasClass('sort-sales')) {
mSearch2.Hash.clear();
var params = mSearch2.getFilters();
mSearch2.load(params);
$(this).data('dir', '').attr('data-dir', '').removeClass(mSearch2.options.active_class);
} else {
if ($(this).attr('data-dir') == "asc" && $(this).hasClass(mSearch2.options.active_class)) {
mSearch2.Hash.clear();
var params = mSearch2.getFilters();
mSearch2.load(params);
$(this).data('dir', '').attr('data-dir', '').removeClass(mSearch2.options.active_class);
} else {
$(mSearch2.options.sort_link).data('dir', '').attr('data-dir', '');
$(this).data('dir', dir).attr('data-dir', dir);

var sort = $(this).data('sort');
if (dir) {
sort += mse2Config.method_delimeter + dir;
}
mse2Config.sort = (sort != mse2Config.start_sort) ? sort : '';
var params = mSearch2.getFilters();
if (mse2Config['page'] > 1 && (mse2Config['mode'] == 'scroll' || mse2Config['mode'] == 'button')) {
mse2Config['page'] = '';
delete(params['page']);
}
mSearch2.Hash.set(params);
mSearch2.load(params);
}
}
return false;
});
},

Чтобы Вам сильно не вникать быстро опишу, что я путём проверки выбранных в данный момент сортировок либо отключаю сортировку (работает на сортировке по скидке, там нужно делать сортировку только по desc) и то же самое делаю для сброса сортировки если выбран asc. Таким образом первый клик делает desc, второй клик делает asc, третий клик сбрасывает сортировку.

Почему-то при сбросе сортировки кнопка выключается, атрибуты сбрасываются, карточки видно что грузятся повторно. НО НО НО. Возвращает последний выбранный фильтр в запрос. Как я понимаю это происходит внутри функции mSearch2.load(params);
Однако параметры берутся из mSearch2.getFilters();
Который в свою очередь берёт данные из mSearch2.Hash.get()
Только в моём случае пере выполнением mSearch2.load(params); и mSearch2.getFilters(); я делаю mSearch2.Hash.clear();, что как мне кажется должно очищать параметры для загрузки. Но где-то я ошибаюсь. Есть те, кто знает где?

16 ответов

65 просмотров
Александр-Щербаков Автор вопроса

Не ужели никто никогда не ковырял mFilter2?

Александр-Щербаков Автор вопроса
Артур Шевченко💀
Сделать списком не удалось?

Клиент привязался к дизайну. А в дизайне кнопка.

Тебе нужно именно по фильтру текущему на 3й раз сбрасывать сортировку? А отдельная кнопка сброса всех сортировок не канает?

Александр-Щербаков Автор вопроса
Александр-Щербаков Автор вопроса

Дак я ж дал уже человека Вам кто все решит😁

Александр Щербаков
Дак я ж дал уже человека Вам кто все решит😁

Я человек наверно 30 - 50 ответы писал что нужно. Заманался. Я нашел 3-5 что там кто хочет и может и без предоплаты за 7к

Я спросил, потому что сбросить сортировку можно отдельной кнопкой из коробки. Но если там переключалка нужна, то конечно дописывать.

Александр Щербаков
А из коробки какая кнопка?

там не кнопка, а можно оформить <a> так: <a href="" data-sort="" data-dir="" class="sorty sort">Сбросить</a>

Александр-Щербаков Автор вопроса
Александр Щербаков
Ага, И на кнопку класс active накидывается)

а что ужасного в том что на него acvite накидывается?

Александр-Щербаков Автор вопроса
Алексей Смирнов
а что ужасного в том что на него acvite накидывает...

У тебя на сайте когда active кидается, кнопка дизайн меняет?

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

Обсуждают сегодня

Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
2
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
у меня программа тысяч на 10 строк. Там в основном моя собственная логика. А по содержанию она просто работает с файловой системой (мастер для бэкапов) и таблицей с данными о ...
Дмитрий Завгородний
5
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Карта сайта