手动触发鼠标事件不会给我latLng

时间:2012-01-06 05:58:09

标签: javascript events google-maps google-maps-api-3

我从地图上的绝对定位的dom元素触发地图上的鼠标事件(此元素跟随我的鼠标)。我希望mouseup元素在地图上触发,就好像鼠标直接在地图上执行一样。最重要的是,我想要latLng坐标作为释放鼠标按钮的位置。这是我的代码的相关部分(关于鼠标后面的元素)。

var mouseup = google.maps.event.addListenerOnce(_map, 'mouseup', function(event) {
  placeMarker(event.latLng);
  addPinClone.remove();
  return bean.remove(window, "mousemove.window__temp__");
});

var addPinClone = $("<div class='map-add-pin'>").css({
  opacity: .4,
  position: "absolute"
}).mouseup(function(evt) {
  return google.maps.event.trigger(_map, "mouseup", evt);
}).appendTo("#map");

如果我直接点击地图,我会在event.latLng事件中获得mouseup。当我从浮动元素触发事件时,我没有。

我试图完全忽略mouseup上的addPinClone函数,希望事件能够恰当地映射到地图上,但这也不起作用。

如何从这里获取latLng?

1 个答案:

答案 0 :(得分:1)

mouseup不是Map类上记录的事件(它在Marker,Polygon,Rectangle和Circle上,即你可能在地图上拖拽的东西)。所以我猜你不可能触发那个事件。虽然有趣的是在地图上正常点击会发生任何事情。