我有一个问题, 当我们超过标记时,为什么与地图相关的剂量鼠标事件永远不会激发
进出口。当我们移动到标记上时,永远不会调用添加到地图中的鼠标移动侦听器 (没有所谓的事件传播或冒泡)。
这是在地图v2上正在进行的工作!
这是一个错误,还是在v3中改变了这种行为?
火焰
以下是示例......
如果您在地图上移动,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';
});
}
答案 0 :(得分:2)
绘制在7个图层上的所有谷歌地图数据。这些图层称为窗格。根据绘图所属的窗格,它可以接收或不接收事件。有关更多信息,请查看google.maps.MapPanes文档。
更新:Google地图会在7个窗格上绘制所有数据。所有窗格都是同一父母的孩子。对于事件冒泡,必须使元素的关系为parent-child
(然后,孩子可以将事件冒泡到父级),而不是sibling-sibling
。在sibling-sibling
关系中,事件由具有最高z-index
的元素接收。这就是您不会将标记窗格中的事件冒泡到地图窗格的原因。