[РЕШЕНО] Better Exposed Filter // Как "избавиться" от пункта "Любой" в раскрытом фильтре ? // .active первого элемента

Главные вкладки

Аватар пользователя Apuox Apuox 26 мая 2015 в 11:49

Добрый день сообщество!)
Собственно сабж. [вопрос об избавлении от пункта -Любой- РЕШЕН]

Установлен модуль BEtter Exposed Filter, выборка ведеться в виде ссылок (http://joxi.ru/krDpYY0FolRyrp). Примерно следующего вида:
- Любой -
- Пункт#1 -
- Пункт#2 -
- Пункт#3 -
- Пункт#4 -

[РЕШЕНО] 1. Как избавиться/отключить пункт "Любой", дабы он вовсе не использовался ? При повторном клике на Пункт#1 (после того, как уже по нему была сортировка), выбирается пункт "Любой", что не есть хорошо (хотя при повторных кликах на другие пункты ничего подобного нет).

[РЕШЕНО][КОСТЫЛЬНО] 2. Активный пункт в фильтре имеет класс active. проблемы:
- при должном активном 1м пункте отсутствует класс active на 1м пункте

Как корректно настроить первый активный пункт фильтра ?

ВложениеРазмер
Иконка изображения active better exposed filter links118.93 КБ

Комментарии

Аватар пользователя Apuox Apuox 26 мая 2015 в 12:37

"Garin33" wrote:
В раскрытом фильтре поставить галку "обязательно".

... Нет слов, столько мудохался, весь модуль вдоль и поперек перелопатил, а тут вот так просто. Спасибо )

Единственное осталась проблема, с неправильным назначением класса "active" текущему активному фильтру.

Аватар пользователя Apuox Apuox 26 мая 2015 в 13:48

Решение такое давно приходило, но..
дело в том, что у меня фильтр работает по технологии ajax, и соответственно DOM фильтра и контента переписывается "на лету", и данный класс попросту улетает. Т.е. необходимо какое-то событие после авто-сабмита формы bef, и тогда добавить класс для первого элемента. Вопрос: "Какое событие?" )

upd: т.е. url имеет вид [http:// site.ru /nav/catalog?field_field_flag_new_value=0], и это системный путь (точнее синоним, а вот параметр системный), юзеру выдается alias, т.е. напрямую из js его не скушать..

upd1: как таковой путь взять не проблема напр. $.attr('href') при клике на нужную ссылку, но нужна идея, как им далее воспользоваться ?

Аватар пользователя EvgenySorokin EvgenySorokin 26 мая 2015 в 14:39

ajax работу негде сейчас проверить, но в теории вариант такой, на том же jquery можно сделать, что если клик по ссылке, то ей класс active добавляется, клик на другую - у текущей класс удаляется, у нажатой добавляется.

Аватар пользователя Apuox Apuox 26 мая 2015 в 14:54

В общем такой вариант я и рассматривал, единственное что сабмит формы происходит не мгновенно а за какие-то 0.5c (например), т.е. логически получается, что сначала работают классы (полюбому), а потом приходит ответ от сабмита, а класс слетает.

Решил примерно таким же способом, но немного иначе:

if(-1 < temp.indexOf('?field_field_flag_new_value=0')) {
     $('#block-system-main .content').addClass('fltr-act');
} else {
     $('#block-system-main .content').removeClass('fltr-act');
}

temp - переменная href, которая береться с ссылки, по которой кликаем:

var temp = $(this).attr('href');

Данный код работает на событии клика по любой ссылке из фильтра, соответственно класс добавляется/удаляется на ближайшем элементе(естественно уникальном), который динамически не меняется (#block-system-main .content), и стили прописаны с учетом данного селектора. Маленький костыль, я бы сказал палка, но выбора нет.