Клуб API Карт

Как отмечать активный пункт выпадающего списка ListBox

iNixon
15 августа, 19:34

Добрый день.

Реализовал выпадающий список для карты, который фильтрует нужные мне маршруты.

Не могу понять, две вещи: 

  1. Как сделать так, что бы при клике на пункт, снималась галочка с остальных пунктов?
  2. Как первый раз открывать список с заранее отмеченным пунктом (в моем случае последним)?

Заранее спасибо за помощь.

 var ponintsList = new ymaps.control.ListBox({
        data: {
            content: 'Маршруты'
        },
        items: [
            new ymaps.control.ListBoxItem('На машине'),
            new ymaps.control.ListBoxItem('На автобусе'),
            new ymaps.control.ListBoxItem('На электричке'),
            new ymaps.control.ListBoxItem({options: {type: 'separator'}}),
            new ymaps.control.ListBoxItem('Все вместе'),
        ]
    });
ponintsList.get(0).events.add('click', function () {
        myMap.geoObjects.add(multiRoute);
        myMap.geoObjects.remove(multiRouteVDNH);
        myMap.geoObjects.remove(multiRouteTrain);
        ponintsList.collapse(); 
});
ponintsList.get(1).events.add('click', function () {
        myMap.geoObjects.remove(multiRoute);
        myMap.geoObjects.add(multiRouteVDNH);
        myMap.geoObjects.remove(multiRouteTrain);
        ponintsList.collapse();
});
ponintsList.get(2).events.add('click', function () {
        myMap.geoObjects.remove(multiRoute);
        myMap.geoObjects.remove(multiRouteVDNH);
        myMap.geoObjects.add(multiRouteTrain);
        ponintsList.collapse();
});
ponintsList.get(4).events.add('click', function () {
        myMap.geoObjects.add(multiRoute);
        myMap.geoObjects.add(multiRouteVDNH);
        myMap.geoObjects.add(multiRouteTrain);
        ponintsList.collapse();
});

3 комментария
1. Хранить указатель на выбранный пункт в state листбокса, и менять его при выборе другого пункта.
2. ListBoxItem принимает state.selected или сделать ponintsList.get(4).select();


Вешать клик на каждый item мягко говоря не стоит, подпишитесь на select на самом ListBox (один обработчик)
Обновлено 16 августа, 04:45
https://jsfiddle.net/go9mjn6n/
Обновлено 16 августа, 05:23
dimik,
Большое спасибо за готовое решение! ) Буду иметь ввиду на будущее. Но в данном случае, реализовал уже через внешний список переключения.