如果在关闭infoWindow时满足某些条件,我想阻止触发的默认关闭事件。是否有可能实现这一目标?我尝试了很多类似的事情:
如果可能,请告诉我。
答案 0 :(得分:0)
InfoWindow并没有真正提供步骤事件传播的方法。我不知道它是否适合你,但是有一个InfoBox Utility Library确实可以为你提供更多控制烤箱的行为。具体到您的问题,InfoBoxOptions
api-doc对象包含属性:
enableEventPropagation
,一个布尔值,允许您控制InfoBox
是否会:在InfoBox中传播mousedown,click,dblclick和contextmenu事件(默认为false,以模仿a的行为) google.maps.InfoWindow
)。如果InfoBox用作地图标签,请将此属性设置为true。 iPhone注意:此属性设置无效;事件总是传播的。
答案 1 :(得分:0)
你唯一能做的就是抓住导致你无处可逃的closeclick
事件。
我曾经一次性攻击了一些东西,一次性解决方案,可能会或可能不会对你有用:我已经确定了一种方法来获取用户点击关闭的x标记,并将其删除。用户无法关闭infoWindow。完全没有。你仍然可以通过调用.close()。
警告!这是一个黑客
var a=document.getElementById('map_canvas');
var b=a.getElementsByTagName('img');
var i, j=b.length;
for (i=0; i<j; i++) {
if(b[i].src.match('imgs8.png')){
if(b[i].style.left=='-18px') {
c=b[i].parentElement.parentElement;
console.log(c);
if(c.innerText.match("Map data")) {
console.log('no');
} else {
b[i].parentElement.removeChild(b[i]);
}
}
}
}
现在。如果您存储对[x]标记的引用,您甚至可以随意打开和关闭它。
修改强>
答案 2 :(得分:0)
您可以随时侦听close事件,然后抛出一个javascript错误以防止它关闭。例如:
google.maps.event.addListener(my_infoWindow, 'closeclick', function(e){
// Throw an error to stop the close
throw "stop close";
})