Главная/ Без цензуры/ Многоуровневый cuSel. Быть или не быть?

Многоуровневый cuSel. Быть или не быть?

Дата публикации: 06.07.2011

Поступило предложение сделать возможность многоуровневого cuSel, тем самым расширить функциональные возможности выпадающего спиcка формы. Текст самого предложения (автор Антон):

Для каждого option в плагине можно добавлять тэги через addTags. Теоретически возможно туда вставить список ul, который будут отображать при hover на оптион. Получится что-то вроде двухуровневого списка: если вложенного списка нет, значение будет как обычно — браться из оптион, а если же есть, тогда значение будет браться из li. Соответственно и выделение активного пункта будет уже у li.

Вопрос: зачем это и где применить? Ведь в обычных списках такого нет.

В обычных селектах такого нет, но раз уж он у и так не стандартный, то почему бы ему не добавить функциональности?
По поводу сферы его применения, то тут хочу привести аналогию с
многоуровневыми меню, во-первых это экономит место, во-вторых это
действительно удобно. Сам принцип последовательного выбора значений в
селекте реализовывается обычно с помощью так называемого каскада
селектов, т.е. при выборе значения в первом селекте появляется
(становится активным, или просто обновляются данные в уже имеющемся)
следующий с привязанными к предыдущему выбору значениями. Пример можно
посмотреть тут
правда тут они тоже переделанные, но суть ясна. Но, если, скажем
расположение контента на странице не позволяет расположить несколько
селектов рядом, а необходимость в таком последовательном выборе всё же
есть, то многоуровневый селект как раз поможет решить эту задачу. Для
примера картинка в аттаче, есть необходимость выбирать города по
области, вёрстка не позволяет показывать несколько появляющихся
друг-за другом селектов, но ситуацию легко исправить тем, что можно
выбирать подпункты сразу в одном селекте. Опять же если необходимо
сменить город, при использовании нескольких селектов нужно сначала
сменить родителя (область), на ту, в которой есть нужный город, а
затем уже выбрать сам город, получается 2 действия, а с многоуровневым
селектом можно выбрать за 1 действие — выбираем область — наводим —
выбираем город. Ну и последнее преимущество, если мы не знаем в какой
области находится нужный нам город, то в случае нескольких селектов
надо будет выбирать последовательно все области одна за другой и для
каждой просматривать второй селект с городами, а при многоуровневом,
просто провести мышкой по всем областям пока не увидишь нужный город,
получается гораздо быстрее.

Вот такие аргументы «за» предложения.

С одной стороны, идея большей функциональности, чем у обычных списков мне нравится. С другой стороны, приведенные доводы меня не совсем убедили.

cuSel — это в первую очередь реализация элемента формы select, который и должен использоваться в формах. Передается одно значение (мультивыбор тут не рассматривается). Да и в таких формах, где какие-либо данные подгружаются при выборе/заполнении определенных полей тоже имеют свой смысл и экономия места на странице не всегда основная задача таких действий. Скорее для экономии веса страницы. Потому описанный выше пример — как минимум не удачный пример применения.

Но в cuSel сейчас не реализована поддержка optgroup — сам тег предназначен для группировки оптионов. Так вот для экономии места можно было бы его использовать как плацдарм для второго уровня.

Просто многоуровневое меню и так можно сделать на CSS, без тяжелых библиотек. А если понадобиться какие-то данные передавать, то можно добавить input type=hidden и пару строк Javascript написать. В общем хотелось бы услышать мнение сообщества о полезности данной функции. Стоит ли ее реализовывать? И где реально она может пригодиться?