Клуб API Карт

control.ListBox странно себя ведет

Пост в архиве.

добрый день!

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

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

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

 

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

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

7 комментариев

Opera 12.17 - список нормально отрабатывает

используйте делегирование событий.

нет смысла назначать такое количество обработчиков на каждую метку и элемент списка

Михаил Петренко
27 января 2016, 23:02

делал как в документации )))

а так - я бы с радостью ) только не пойму как получить индекс(номер) по кому кликнули (((

 

indexOf()

 

Там можно сделать проще, передавая каждому элементу списка метку в данных

Михаил Петренко
27 января 2016, 23:02

1) indexOf вернул -1 т.е. элемент не найден. может что-то не так пишу. пример кода есть?

2) нет ли примера с метками?

3) это все равно не отвечает на вопрос "почему код по примеру в документации ведет себя по разному в разных браузерах"

Да с индексами какая-то ерунда.

Будем разбираться.

 

Примера нет, но есть документация

ListBoxItem может принимать объект вместо строки

new ymaps.control.ListBoxItem('Москва') -> new ymaps.control.ListBoxItem({ content: 'Москва', _my_field_: myPlacemark })

Вы можете передать свое поле с меткой и потом получить его в обработчике события.

  myListBox.events.add('select', function (e) {

    var item = e.get('target');

    

    console.log(item.data.get('_my_field_'));

 

  });

Михаил Петренко
27 января 2016, 23:02

спасибо за ответы! решил проблему через массив объектов - сопли еще те полуичились, но работает четко