Клуб API Карт

Найдено на тему «выпадающий список»:
Два выпадающих списка
ponomarev@ugi.ru
6 сентября 2016, 11:46

Здравствуйте.

Использую пример из Песочницы: https://tech.yandex.ru/maps/jsbox/2.1/list_box_layout 

Требуется разместить рядом два выпадающих списка. Это получилось. Но вот проблема - первый раскрывается, а второй нет. Где-то напутал с синтаксисом в js? В HTML что-то надо добовлять? Помогите разобраться!

4 комментария
выпадающий список
Как сделать ListBox недоступным?
Удалённый пользователь
20 июля 2015, 16:42

Здравствуйте.

Возможно ли сделать выпадающий список полностью недоступным?

У control.ListBoxItem есть метод disable(), а для ListBox подобного метода не нашел.

 

1 комментарий
элементы управления,API 2.0,контролы,выпадающий список
Делегирование событий ListBoxItem
Creator
15 июля 2015, 14:03

Доброго времени суток, есть список ListBox в нем динамически изменяемые ListBoxItem, задача назначить событие клика на все ListBoxItem, одиночное навешивание каждому по числовому индексу отпадает. Странно что в апи нет такой возможности, а есть лишь только событие на ListBox целиком и на одиночный item. Конечно подходит такой вариант, который ранее был озвучен:

 

filcon = new ymaps.control.ListBox(....);

filcon.events.add('click', function(e){
        var target = e.get('target');
        if(filcon != target) {
             alert(target.data.get('cat'));
         }

});

 

Как бы все нормально, НО, при клике по ListBoxItem происходит двойное срабатывание, вопрос, почему? и как это побороть?

23 комментария
API 2.1,элементы управления,события,контролы,выпадающий список
Нужна помощь: выпадающий список объектов
Игорь Р.
3 июня 2015, 18:54

Добрый день! Давно использую карты. Но сейчас ради эксперимента задался целью, как сделать выпадающий список определенных городов?

Пример посмотрел https://tech.yandex.ru/maps/jsbox/2.1/list_box_layout все возможно. Но как это реализовать?

В конструктуре генерим код:

<script type="text/javascript" charset="utf-8" src="https://api-maps.yandex.ru/services/constructor/1.0/js/?sid=NZFJUw3f7b9xvx1S2R41gK8RKBKyPLwtg&width=100%&height=500" ></script>

 

А дальше что? Как подключить код выпадающего списка?

Надо создать и подключить скрипт в вышеуказанный код?

Подскажите пожалуйста, буду очень благодарен.

4 комментария
API 2.1,элементы управления,контролы,выпадающий список,конструктор
Дополнить шаблон для ListBox
Иван
26 мая 2015, 17:30

Добрый день! Необходимо в своём шаблоне для listbox добавить checkbox под кнопку вывода списка.

 

Делаю как-то так: https://jsfiddle.net/81kpsg42/


Однако при клике на любой html-элемент, расположенный внутри элемента управления listBox, срабатывает событие, открывающее список.


Как решить эту проблему? Может, есть и другие пути для добавления checkbox под кнопку вызова списка.


Этот checkbox будет влиять на событие при клике на пункт списка.


Очень надеюсь на вашу помощь. Сам решить задачу не могу.

8 комментариев
API 2.1,события,контролы,элементы управления,выпадающий список,ListBox
Один выбор listBox
Иван
21 мая 2015, 18:03

Добрый день! Хочу реализовать подключение своих слоёв карт через listBox.

Накидал пример: https://jsfiddle.net/3t01k3gh/

Вроде основное работает, но выбор должен быть только одного элемента списка, чтобы показывалась только одна карта.

Очень прошу мне помочь, мучаюсь с этим довольно долго.

7 комментариев
API 2.1,слои,события,контролы,элементы управления,выпадающий список
Не получается повесить событие на элемент списка control.ListBox
Dark
21 мая 2015, 13:26

Если назначать события непосредственно:

 

AreaList.get(0).events.add('click', function () {

    console.log(0)

});

AreaList.get(1).events.add('click', function () {

    console.log(1)

});

 

все работает, однако если я эти события пытаюсь повесить через цикл, то не работает. Выдает ошибку TypeError: this._yH is undefined.

Ссылка: https://jsfiddle.net/r7yc2rdm/5/

P.S. Рабочий вариант закоментирован

11 комментариев
API 2.1,события,контролы,выпадающий список,элементы управления,Javascript
Управление фильтрами через control ListBox (РЕШЕНО)
Алексей
24 марта 2015, 11:07

Делаю кнопку с выпадающим списком. список содержит пункты по которым можно фильтровать:

           var cityList = new ymaps.control.ListBox({
        data: {
            content: 'Фильтр'
        },
        items: [
            new ymaps.control.ListBoxItem({data: {
                content: 'type1',
            }}),
        new ymaps.control.ListBoxItem({data: {
                content: 'type2',
            }}),
        new ymaps.control.ListBoxItem({data: {
                content: 'type3',
            }})],
        options: {
            float: "left"
        }
    });
        myMap.controls.add(cityList);
    cityList.get(0).events.add('click', checkState);
    cityList.get(1).events.add('click', checkState);
    cityList.get(2).events.add('click', checkState);

 фильтр делаю через проверку состояния, отмечен ли пункт, к примеру первый, аналогичный код для остальных пунктов:

        if (cityList.get(0).state.get('selected'))
        {           ----------------------     какой то код      ------------------      }
        if (cityList.get(1).state.get('selected'))
       {           ----------------------     какой то код      ------------------      }
       if (cityList.get(2).state.get('selected'))
     {           ----------------------     какой то код      ------------------      }

 И ловлю событие клика:

    cityList.get(0).events.add('click', checkState);
    cityList.get(1).events.add('click', checkState);
    cityList.get(2).events.add('click', checkState);

 У меня проблема в том, что при клике сначала выполняется моя функция, а потом уже отмечается пункт галочкой, таким образом код проверки фильтра (checkState) отрабатывает неправильно.

Отсюда вопрос, как сделать так, что бы сначала проставлялась/убиралась калочка выбора, а потом отрабатывала функция.

Заранее спасибо.

10 комментариев
API 2.1,элементы управления,события,контролы,выпадающий список
control.ListBox странно себя ведет
Михаил Петренко
4 марта 2015, 14:54

добрый день!

добавил списки городов и все вроде куда-то переходит, но

в firefox переходит по клику в спике на нужный город, а в chrome и opera

не совпадает элемент списка с местом куда ехать

 

что я делаю не правильно?

страничка с картой

7 комментариев
API 2.1,элементы управления,контролы,выпадающий список
Работа с ListBox
ageent-ua
15 февраля 2015, 17:31

Народ подскажите пожалуйста такие моменты по работе с ListBox.

 

1. Как добавить свой индекс элемента в ListBoxItem

new ymaps.control.ListBoxItem('Москва', "Тут мой индекс 1")

2. Как ловить событие не по конкретному элементу, а по всему списку?

3. Как после того как мы поймали событие вытягивать те индексы, которые отметил пользователь.

 

Вот я собрал пример http://jsfiddle.net/2t85bngv/3/

 

Спасибо.

4 комментария
API 2.1,элементы управления,контролы,выпадающий список
Не работает параметр options
ageent-ua
13 февраля 2015, 00:18

Привет народ.

 

Подскажите пожалуйста почему не работает параметр options в ListBox? Вот я собрал пример http://jsfiddle.net/2t85bngv/1/

 

Спасибо.

2 комментария
API 2.1,элементы управления,контролы,выпадающий список
Убрать галочки в выпадающем списке
balov100
27 января 2015, 14:21

Подскажите пожалуйста, как или вообще убрать галочки, или сдеалть чтобы они кооректно снимались, когда выбираю другой пункт. Приоритет, просто убрать их совсем, чтобы подпункт просто работал как ссылка. При клике переводил к нужному городу и выбадающий список скрывался.

Вот как сейчас у меня. Все галочки ставятся, и снимаются.

 

Моя реализация:

all_city = [['Киев', [50.44582000, 30.52568147], 12],
        ['Одесса', [46.45845663, 30.72893425], 11]]

items_city = []
for(var j = 0, len = all_city.length; j < len; j++) {
    items_city[j] = new ymaps.control.ListBoxItem({data: {content: all_city[j][0], center: all_city[j][1]}}, {selectOnClick: false})
}

var myListBox = new ymaps.control.ListBox({
    data: {
        content: 'Выбрать город'
    },
    items: items_city
});

// добавляем всему выпадающему списку метод клика, для центровки координат на карте
myListBox.events.add('click', function (e) {
    var item = e.get('target'),
            center = item.data.get('center');
    // Если клик по элементу списка, а не по заголовку - меняем центр карты.
    item === myListBox || myMap.setCenter(center, myMap.getZoom(), {checkZoomRange: true});
});

myMap.controls.add(myListBox, {float: 'right'});
2 комментария
API 2.1,элементы управления,контролы,выпадающий список