Список выбора с checkbox на карте yandex
Чтобы получилось примерно такое:
Нужно выполнить довольно много телодвижений:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// кнопка фильтров var listBoxItems = ['111', '222'] .map(function(title) { return new ymaps.control.ListBoxItem({ data: { content: title }, state: { selected: false } }) }), // Список listBoxControl = new ymaps.control.ListBox({ data: { content: 'Фильтр', title: 'Фильтр' }, items: listBoxItems, state: { // Признак, развернут ли список. expanded: false, filters: listBoxItems.reduce(function(filters, filter) { filters[filter.data.get('content')] = filter.isSelected(); return filters; }, {}) } }); myMap.controls.add(listBoxControl); listBoxControl.events.add(['select', 'deselect'], function(e) { var listBoxItem = e.get('target'); console.log(e); var filters = ymaps.util.extend({}, listBoxControl.state.get('filters')); filters[listBoxItem.data.get('content')] = listBoxItem.isSelected(); console.log(filters); listBoxControl.state.set('filters', filters); }); |