Клуб API Карт

События для результатов поиска в SearchControl

ryllaz
8 мая 2014, 18:07

Как можно отловить разные события над результатами поиска из SearchControl (например, click, mouseenter, mouseleave)?

Работает только это:

searchControl.events.add('resultselect', function (event) {
    console.log(event);
}, this);

7 комментариев
Подписаться на комментарии к посту

А какой у Вас кейс? 

Не совсем понимаю, что вы имеете в виду.

Для чего Вам нужны эти события, может задачу можно решить по-другому или другими методами?

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

Обьясню. Есть карта с определенной коллекцией точек (Placemark). Есть SearchControl, который ищет по этой коллекции. Надо при наведении (не при клике) на результат поиска выделить точку, которой он соотвествует.

Для этого нужно переопределить макет элемента выдачи.
Собрал пример: http://jsfiddle.net/9zm84/
Если что не понятно будет, с радостью подскажу.

В ближайшей версии задокументируем необходимые опции.

А можно тот же код, но для версии 2.0? Получаю ошибку "ymaps.theme.islands is undefined"

С версией промашечка вышла, извиняюсь.
В 2.0 так сделать не получится. Можете попробовать делать выборку по специфическим селекторам, вроде ".ymaps-b-serp-item". Это опасно, но других способов пока нет.