Клуб API Карт

При использовании пользовательского стиля оформления балуна внутри него нельзя выделить текст

Пост в архиве.
alexey.v.zakharov
3 июня 2011, 10:06

http://api.yandex.ru/maps/jsapi/examples/mapballoonlayout.html - я создал стиль балуна по аналогии с вашим примером. Внутри него не выделяется текст, не работают элементы формы. Карта перемещать нажимая на балун. Видимо слой основной карты его перекрывает. Я не знаю как можно это убрать.... Пробывал в разных местах ставить z-index не помогает.

2 комментария

Если Вы хотите, чтобы некоторые события из балуна не обрабатывались картой, нужно явным образом запретить их обработку. Если node - html-элемент контента Вашего балуна, то следует сделать примерно так:

YMaps.jQuery(node).bind('mousedown mousemove mouseup click dblclick cotentextmenu', function (e) {

    var mapEvent = new YMaps.MouseEvent(e, map);

    mapEvent.preventMapEvent();

});

После этого события из балуна перестанут действовать на карту. Не забудьте отписаться от этих событий по onRemoveFromParent.

alexey.v.zakharov
3 июня 2011, 12:33


Спасибо огромное. Ниже привел функцию которую следует заменить в стандартном примере. Не согласен с вами насчет подписки, так как jquery сам отписывается от всех событий при вызове remove.



// Добавляет макет на страницу
  this.onAddToParent = function (parentNode) {
    YMaps.jQuery(parentNode).append(this.element);

    YMaps.jQuery(this.element).bind('mousedown mousemove mouseup click dblclick cotentextmenu', function (e) {
      var mapEvent = new YMaps.MouseEvent(e, parentNode);
      mapEvent.preventMapEvent();
    });

    this.update();
  };