自定义光标在Google Maps V3中的可点击多边形上

时间:2011-05-11 19:38:22

标签: google-maps-api-3 cursor

我创建了可点击的多边形并将其附加到地图上。我为地图设置了'crosshair'dragggableCursor。对多边形也有相同的光标会很好。但是,当我将鼠标悬停在多边形上时,光标会变为手形。

保持光标不变的唯一方法是设置clickable:false为多边形,但是驱动多边形的所有事件侦听器都不起作用。

我花了一半时间试图在网上找到解决方案,但失败了。有没有人拥有这样的知识宝石?

1 个答案:

答案 0 :(得分:2)

经过一番思考后,我想出了一个非常hacky 的策略。我将此包含在学术好奇心中,但我不建议在生产网站中实施它。

在伪代码中:

onPolygonMouseover:
  setTimeout(0 ms)

onTimeout:
  Find all elements in the dom with cursor == pointer
  Set pointer to crosshair

jQuery可能对使用cursor ==指针查找所有元素很有用。或者,您可以遍历整个DOM。

为何超时?

超时是因为我不确定API公开事件的顺序。如果在内部API事件之前处理了事件,则内部代码可能会覆盖您的光标。

为什么超时为0?

超时为0会推送JS执行堆栈上的代码。它将在下一次代码执行中的“中断”时执行。这应该是所有事件处理代码完成后。