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 ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта