1

在谷歌地图 API V3 中,如果用户控制点击地图,我想在地图上添加一个标记。为此,我在地图中添加了一个侦听器,如下所示 -

google.maps.event.addListener(map, 'click', function(e){
if (event.ctrlKey)
    add_marker(e.position);
});

由侦听器传递的e参数包含一些数据,但主要是关于单击的位置,而我希望能够询问在用户单击地图期间是否按下了控制按钮。

我发现 chrome 有一个对象event,它是默认的 Javascript 的 eventObject,其中包含我需要的数据(ctrlKey),这确实适用于 chrome。

但是,当我在 FF 中尝试相同的代码时,它找不到名为“事件”的对象,我也找不到检索它的方法。

感谢您帮助我找到适用于 IE 的解决方案。

谢谢,丹克

4

1 回答 1

1

API 没有说明访问 DOM-event-object 的任何内容。

传递给回调函数的参数当前包含一个b引用事件对象的属性,因此您可以使用e.b.ctrlKey

但由于这没有记录,它不可靠,明天可能会改变。

另一种选择:
您可以在不使用 API 方法的情况下观察包含地图的 div 的事件:

map.getDiv().onclick=function(e)
{
  e=window.event||e;
  if (e.ctrlKey)
  {
    //do something
  }
}
于 2012-06-20T11:49:44.230 回答