Javascript 为什么';鼠标';IE上google maps中添加到OverlyMouseTarget层的div未激发事件?
我正在给谷歌地图添加一个自定义覆盖图 作为其中的一部分,我希望用户能够点击覆盖。为此,我在“OverlyMouseTarget”层中添加了一个透明的空div,这应该是捕获此类事件的正确位置 我希望用户能够单击覆盖,但我希望忽略试图拖动覆盖的用户。要做到这一点,我不能只使用“click”事件,我必须听“mousedown”、“mousedrag”和“mouseup”。并且有一些旗帜来跟踪州,它应该工作得很好 我发现在chrome/firefox/edge/etc中,它可以正常工作,但在IE中,mouseup事件从未被触发 下面是一个基于谷歌示例代码的JS fiddle,它带有额外的div和事件处理程序,重现了这个问题: 在非IE浏览器中打开它,点击F12打开devtools,切换到控制台日志,然后单击覆盖,您应该会看到:Javascript 为什么';鼠标';IE上google maps中添加到OverlyMouseTarget层的div未激发事件?,javascript,google-maps,Javascript,Google Maps,我正在给谷歌地图添加一个自定义覆盖图 作为其中的一部分,我希望用户能够点击覆盖。为此,我在“OverlyMouseTarget”层中添加了一个透明的空div,这应该是捕获此类事件的正确位置 我希望用户能够单击覆盖,但我希望忽略试图拖动覆盖的用户。要做到这一点,我不能只使用“click”事件,我必须听“mousedown”、“mousedrag”和“mouseup”。并且有一些旗帜来跟踪州,它应该工作得很好 我发现在chrome/firefox/edge/etc中,它可以正常工作,但在IE中,
mousedown
mouseup
现在在IE中执行同样的操作,您应该只看到:
mousedown
如果我在mousedown中添加event.preventDefault(),那么我确实会在IE中获得mouseup事件
但这会阻止地图在拖动(而不是单击)事件期间滚动。
在最初的示例中,您可以单击覆盖,拖动,地图将移动,其中与“修复”一样,此行为被禁用
不幸的是,谷歌没有提供地图脚本的非缩略版本,所以我看不出他们自己是如何解决这个问题的,比如标记
mousedown
mouseDiv.addEventListener("mousedown", function (event) {
console.log("mousedown");
event.preventDefault();
});