Коллега по работе активно использует jQuery UI на своем проекте и я решил посмотреть снова в сторону этой библиотеки. Ране работал немного с jQuery UI, но отказался, т.к. субъективно пришел к мнение, что все начинает жутко тормозить, но это было 2,5 года назад.

Мне приглянулся компонент combobox, который позволяет преобразовывать элемент формы select в свой произвольный select с возможностью поиска по текстовому полю, что-то похожее на datalist в HTML5, который можно внешне настроить как себе хочется через CSS разметку и ввести свою бизнес логику при желания, через предоставляемые виджетом методы.

Смысл использования таких плюшек должен сводится к принципу наслоения, т.е. скрипт подключается и иницилизируюется на нужных элементах, превращая select в combobox. Скрипт отключается с обратным преобразованием combobox в select, чтобы на js не было что-то завязано и все работало через слои, которые при желании можно было легко добавить, заменить, убрать и при этом работоспособность сайта оставалась стабильной.

Но как есть, ui.combobox мне не совсем подошел. Т.к. у меня используются иерархические списки выбора, т.е. с применением optogroup как разделителей или как активных элементов, т.е. категория -> подкатегория. Благодаря компактному и разбитому на методы коду, достаточно быстро удалось изменить код, чтобы он начал поддерживать иерархию выборы и научился имитировать родительские группы. Пока очень доволен и удивлен, почему я ранее не разбирался с виджетами в jQuery UI, уверен что у меня было бы уже пару полезных боевых виджетов.

Планирую ввести пользовательские опции и научить combobox работать не только как select, но и как список множественного выбора, через чекбоксы или просто активное и не активное состояние с возможностью поиска.

Прочтите также: