gpt4 book ai didi

javascript - GMarker onmouseout 事件触发得太快

转载 作者:行者123 更新时间:2023-12-02 20:43:34 24 4
gpt4 key购买 nike

情况如下:

在我的 Google map 上,每当用户将鼠标移到 GMarker 上时,我都会尝试打开一个 html 信息窗口。当指针离开标记时,应关闭此窗口。

GEvent.addListener(my_marker, "mouseover", function() {
MaCarte.openInfoWindowHtml(new GLatLng(my_marker.getLatLng().lat()+0.002, my_marker.getLatLng().lng()+0.001),"some text");
});

GEvent.addListener(my_marker, "mouseout", function() {
if((MaCarte.getInfoWindow().getPoint().lat() == my_marker.getLatLng().lat()+0.002)
&& (MaCarte.getInfoWindow().getPoint().lng() == my_marker.getLatLng().lng()+0.001))
MaCarte.closeInfoWindow();
});

发生的情况是 onmouseout 事件触发得太快,因此信息窗口会在该事件之后立即打开和关闭。

我的猜测是,鼠标不再位于标记上方,而是位于信息窗口上方,导致 onmouseout 被触发。

如何让信息窗口打开,直到我的指针真正离开标记?

最佳答案

我会使用一个计时器和变量来指示是否可以关闭窗口。基本上,在鼠标悬停事件中启动一个计时器,并且该计时器更改一个变量。 mouseout 事件仅在可以关闭的情况下关闭窗口

喜欢

GEvent.addListener(my_marker, "mouseover", function() {
timer.start()
MaCarte.openInfoWindowHtml(new GLatLng(my_marker.getLatLng().lat()+0.002, my_marker.getLatLng().lng()+0.001),"some text");
});




GEvent.addListener(my_marker, "mouseout", function() {
if (okToClose){
if((MaCarte.getInfoWindow().getPoint().lat() == my_marker.getLatLng().lat()+0.002)
&& (MaCarte.getInfoWindow().getPoint().lng() == my_marker.getLatLng().lng()+0.001))
MaCarte.closeInfoWindow();
}
});

这并不能直接回答您的问题,但可以作为一种解决方法。

希望对你有帮助!

克里斯

关于javascript - GMarker onmouseout 事件触发得太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1868535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com