Javascript 为什么';鼠标';IE上google maps中添加到OverlyMouseTarget层的div未激发事件?

Javascript 为什么';鼠标';IE上google maps中添加到OverlyMouseTarget层的div未激发事件?,javascript,google-maps,Javascript,Google Maps,我正在给谷歌地图添加一个自定义覆盖图 作为其中的一部分,我希望用户能够点击覆盖。为此,我在“OverlyMouseTarget”层中添加了一个透明的空div,这应该是捕获此类事件的正确位置 我希望用户能够单击覆盖,但我希望忽略试图拖动覆盖的用户。要做到这一点,我不能只使用“click”事件,我必须听“mousedown”、“mousedrag”和“mouseup”。并且有一些旗帜来跟踪州,它应该工作得很好 我发现在chrome/firefox/edge/etc中,它可以正常工作,但在IE中,

我正在给谷歌地图添加一个自定义覆盖图

作为其中的一部分,我希望用户能够点击覆盖。为此,我在“OverlyMouseTarget”层中添加了一个透明的空div,这应该是捕获此类事件的正确位置

我希望用户能够单击覆盖,但我希望忽略试图拖动覆盖的用户。要做到这一点,我不能只使用“click”事件,我必须听“mousedown”、“mousedrag”和“mouseup”。并且有一些旗帜来跟踪州,它应该工作得很好

我发现在chrome/firefox/edge/etc中,它可以正常工作,但在IE中,mouseup事件从未被触发

下面是一个基于谷歌示例代码的JS fiddle,它带有额外的div和事件处理程序,重现了这个问题:

在非IE浏览器中打开它,点击F12打开devtools,切换到控制台日志,然后单击覆盖,您应该会看到:

mousedown
mouseup
现在在IE中执行同样的操作,您应该只看到:

mousedown
如果我在mousedown中添加event.preventDefault(),那么我确实会在IE中获得mouseup事件

但这会阻止地图在拖动(而不是单击)事件期间滚动。 在最初的示例中,您可以单击覆盖,拖动,地图将移动,其中与“修复”一样,此行为被禁用

不幸的是,谷歌没有提供地图脚本的非缩略版本,所以我看不出他们自己是如何解决这个问题的,比如标记

mousedown
mouseDiv.addEventListener("mousedown", function (event) {
    console.log("mousedown");
    event.preventDefault();
});