我有一张地图和多个标记。我已经在地图容器上附加了一个click
事件,以便使用动画消除地图上显示的内容(我有传说,时间轴等)。
我的问题是当您点击标记以查看infoWindow
时,它还会触发地图上的click
事件,该事件会在地图上的图层对象上消失。因此,我想在点击标记时阻止地图容器已分配事件,因此只会出现infoWindow而不会出现任何其他内容。
这是地图点击事件:
$('#map_canvas').bind('mousedown', function() { ...
我唯一可以在标记上看到的是,它们都有相同的类:gmnoprint
我已经测试了这个:
$('#map_canvas').not('.gmnoprint').bind('mousedown', function() { ...
和
$('#map_canvas').bind('mousedown', function() {
if ($(this).is('.gmnoprint'))
return false;
....
但他们都没有奏效。任何人都知道如何解决这个问题?
提前致谢!
答案 0 :(得分:1)
我尝试使用google maps API事件监听器,因为它们在与地图元素交互时最可靠:
https://developers.google.com/maps/documentation/javascript/events https://developers.google.com/maps/documentation/javascript/overlays#InfoWindows
这是gmaps API的基本语法,用于绑定点击以打开与标记关联的信息窗口:
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
希望这会有所帮助!
答案 1 :(得分:1)
您必须抓住event
,然后致电event.preventDefault
,其中您拥有infoWindow的.click
功能。
答案 2 :(得分:1)
你可以做那样的事情
<div id="map_canvas" class="foo"></div>
$("#map_canvas").hasClass("foo").click(function(){
$(this).removeClass("foo")
})
答案 3 :(得分:1)
你的问题是
$('#map_canvas').bind(...
那些标记/信息窗口在map_canvas div中,所以你在技术上点击它