Google Map API V3 - 当用户实际双击时,如何防止标记的鼠标单击事件

Shr*_*yas 6 google-maps google-maps-api-3

我在地图上有一个标记,我想绑定两个事件:

  1. 点击
  2. DBLCLICK

我想做以下事情:

  1. 当用户点击标记时,地图应放大并显示更详细的地图.
  2. 我想将'dblclick'事件绑定到同一个标记,以便它将在相邻的'div'元素中加载一些第三方报告.

换句话说,我希望当用户点击或dblclicks时,它的行为会有所不同.但问题是,当我结合这两个事件标记和用户双击"标记"点击"处理程序被炒鱿鱼,我不想让它发生.

是否真的,当用户双击时,click事件也会被触发?如果是这样,当用户实际双击时,如何防止它触发"点击"事件?有没有办法让我可以点击和双击标记的事件做不同的事情?

Nel*_*son 4

这是 api 的已知细微差别,您需要安装点击计数器超时,如下所示:

function createMap2() {
  var infoWindow = new google.maps.InfoWindow();
  var map = new google.maps.Map(document.getElementById("map2"), myOptions); 

  var doubleClicked=false;
  var clickEvent;

  google.maps.event.addListener(map, 'dblclick', function(event) { 
    doubleClicked=true;
  }); 

  function handleClick() {
    if (!doubleClicked) {
      infoWindow.setPosition(clickEvent.latLng);
      infoWindow.setContent(createInfo(clickEvent));
      infoWindow.open(map);
    }
  }

  google.maps.event.addListener(map, 'click', function(event) { 
    clickEvent = event;
    doubleClicked = false;
    window.setTimeout(handleClick, 250);
  }); 
}
Run Code Online (Sandbox Code Playgroud)

以上代码摘自http://www.william-map.com/20100506/1/v3click.htm

查看这些链接以获取更多信息:

https://groups.google.com/forum/?fromgroups=#!topic/google-maps-js-api-v3/YRAvYHngeNk https://groups.google.com/forum/?fromgroups=#!topic/google -maps-js-api-v3/2MomDiLMEiw