Добрый день сообщество!)
Собственно сабж. [вопрос об избавлении от пункта -Любой- РЕШЕН]
Установлен модуль BEtter Exposed Filter, выборка ведеться в виде ссылок (http://joxi.ru/krDpYY0FolRyrp). Примерно следующего вида:
- Любой -
- Пункт#1 -
- Пункт#2 -
- Пункт#3 -
- Пункт#4 -
[РЕШЕНО] 1. Как избавиться/отключить пункт "Любой", дабы он вовсе не использовался ? При повторном клике на Пункт#1 (после того, как уже по нему была сортировка), выбирается пункт "Любой", что не есть хорошо (хотя при повторных кликах на другие пункты ничего подобного нет).
[РЕШЕНО][КОСТЫЛЬНО] 2. Активный пункт в фильтре имеет класс active. проблемы:
- при должном активном 1м пункте отсутствует класс active на 1м пункте
Как корректно настроить первый активный пункт фильтра ?
Вложение | Размер |
---|---|
active better exposed filter links | 118.93 КБ |
Комментарии
В раскрытом фильтре поставить галку "обязательно".
... Нет слов, столько мудохался, весь модуль вдоль и поперек перелопатил, а тут вот так просто. Спасибо )
Единственное осталась проблема, с неправильным назначением класса "active" текущему активному фильтру.
Есть такая проблема.
Решал кодом отсюда - https://stackoverflow.com/questions/9983091/jquery-add-class-based-on-pa...
Костыль, но работает.
Решение такое давно приходило, но..
дело в том, что у меня фильтр работает по технологии ajax, и соответственно DOM фильтра и контента переписывается "на лету", и данный класс попросту улетает. Т.е. необходимо какое-то событие после авто-сабмита формы bef, и тогда добавить класс для первого элемента. Вопрос: "Какое событие?" )
upd: т.е. url имеет вид [http:// site.ru /nav/catalog?field_field_flag_new_value=0], и это системный путь (точнее синоним, а вот параметр системный), юзеру выдается alias, т.е. напрямую из js его не скушать..
upd1: как таковой путь взять не проблема напр. $.attr('href') при клике на нужную ссылку, но нужна идея, как им далее воспользоваться ?
ajax работу негде сейчас проверить, но в теории вариант такой, на том же jquery можно сделать, что если клик по ссылке, то ей класс active добавляется, клик на другую - у текущей класс удаляется, у нажатой добавляется.
В общем такой вариант я и рассматривал, единственное что сабмит формы происходит не мгновенно а за какие-то 0.5c (например), т.е. логически получается, что сначала работают классы (полюбому), а потом приходит ответ от сабмита, а класс слетает.
Решил примерно таким же способом, но немного иначе:
$('#block-system-main .content').addClass('fltr-act');
} else {
$('#block-system-main .content').removeClass('fltr-act');
}
temp - переменная href, которая береться с ссылки, по которой кликаем:
Данный код работает на событии клика по любой ссылке из фильтра, соответственно класс добавляется/удаляется на ближайшем элементе(естественно уникальном), который динамически не меняется (#block-system-main .content), и стили прописаны с учетом данного селектора. Маленький костыль, я бы сказал палка, но выбора нет.