Распространение событий мыши от маркера до базовой карты - PullRequest
2 голосов
/ 08 марта 2012

У меня один вопрос, почему дозовые события мыши, связанные с картой, никогда не запускаются, когда мы находимся над маркером

exp.добавление слушателя перемещения мыши на карту никогда не вызывается, когда мы перемещаемся по маркеру (нет так называемого распространения событий или всплытия).

Это работало на картах версии 2!Это ошибка, или она изменена на это поведение в v3?

Blaze

Вот пример ...

Если вы перемещаетесь по карте, mapLabel будетобновляется, как и должно быть, но если вы двигаетесь над маркером, mapLabel никогда не обновляется

var map;
  function initialize() {
    var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
    var myOptions = {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  google.maps.event.addListener(map, 'MOUSEMOVE', function() {
    document.getElementByID('moveLabel').innerHtml = 'Mouse map move' + Math.random();
  });

  var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title:"Hello World!"
  });
google.maps.event.addListener(marker, 'MOUSEOUT', function() {
    document.getElementByID('markerLabel').innerHtml = '';
  });
  google.maps.event.addListener(marker, 'MOUSEOVER', function() {
    document.getElementByID('markerLabel').innerHtml = 'Mouse over marker';
  });
}

1 Ответ

2 голосов
/ 09 марта 2012

Все данные карт Google, которые нарисованы, размещены на 7 слоях.Эти слои называются панелями.В зависимости от того, к какой панели принадлежит рисунок, он может получать или не получать события.Для получения дополнительной информации см. Документацию google.maps.MapPanes .

ОБНОВЛЕНИЕ: Карты Google отображают все данные на 7 панелях.Все панели являются детьми одного и того же родителя.Для всплытия событий необходимо, чтобы отношение элементов было parent-child (тогда дочерний элемент мог передать событие родительскому элементу), но не sibling-sibling.В отношении sibling-sibling событие получает элемент с наибольшим значением z-index.По этой причине вы не получаете события, всплывающие из области маркера на панель карты.

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