为什么当Google Maps js api标记的mousein事件稍微超出标记时会发生?

时间:2018-09-21 07:11:49

标签: google-maps-api-3

我的目标是要具有以下行为: 标记上的mousein-打开信息窗口; 将鼠标移出标记-关闭信息窗口;

但是,当我从标记的顶部鼠标悬停时,仍然没有到达标记,但是从顶部非常接近标记时,信息窗口会打开;然后,鼠标位于信息窗口的尖端,这现在会触发来自标记的mouseout事件-可能是因为现在已将鼠标视为位于信息窗口的尖端。然后,信息窗口关闭,并触发mousein,这会无限期发生。

有没有一种方法可以“告诉” API仅在鼠标实际上位于标记上时触发标记mousein事件?或者,还有另一种避免这种循环的方法吗?

编辑:这是循环进行的速度:

web.js:1447 mouseover: 10:53:56.209
web.js:1452 mouseout: 10:53:56.233
web.js:1447 mouseover: 10:53:56.258
web.js:1452 mouseout: 10:53:56.291
web.js:1447 mouseover: 10:53:56.297
web.js:1452 mouseout: 10:53:56.315
web.js:1447 mouseover: 10:53:56.339
web.js:1452 mouseout: 10:53:56.376
web.js:1447 mouseover: 10:53:56.401
web.js:1452 mouseout: 10:53:56.435

1 个答案:

答案 0 :(得分:0)

Google Maps JS v3中的JavaScript UI事件中没有诸如mousein之类的事件。您必须使用mouseover而不是mousein。请检查Events documentation,以了解有关事件的更多信息以及Marker class的参考。您可能会在文档中看到以下内容:

  

事件:animation_changedclickclickable_changedcursor_changeddblclickdragdragend,{{1 }},draggable_changeddragstartflat_changedicon_changedmousedownmouseoutmouseovermouseupposition_changedrightclickshape_changedtitle_changedvisible_changed

应这样使用:

zindex_changed

点击此link以查看其运行情况。