我创建了可点击的多边形并将其附加到地图上。我为地图设置了'crosshair'dragggableCursor。对多边形也有相同的光标会很好。但是,当我将鼠标悬停在多边形上时,光标会变为手形。
保持光标不变的唯一方法是设置clickable:false为多边形,但是驱动多边形的所有事件侦听器都不起作用。
我花了一半时间试图在网上找到解决方案,但失败了。有没有人拥有这样的知识宝石?
答案 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执行堆栈上的代码。它将在下一次代码执行中的“中断”时执行。这应该是所有事件处理代码完成后。