我有一张传单 map ,我在其中动态添加标记。
除了单击标记时,我还想在将鼠标悬停在标记上时调用标记的弹出窗口。
我的代码是:
function makeMarker(){
var Marker = L.marker...
Marker.on('mouseover', function(){Marker.bindPopup('HI').openPopup();});
Marker.on('mouseout', function(){Marker.closePopup();});
}
如果我注释掉 mouseout 行,则会出现弹出窗口,但我必须单击别处才能关闭它。 问题是当我放入 mouseout 时,当光标悬停在标记上时,光标有点闪烁,没有任何显示。我认为弹出窗口正在打开,但很快就关闭了,这就是光标闪烁的原因,但我不知道如何解决这个问题
最佳答案
弹出窗口实际上是在光标下方加载并从标记中“窃取”鼠标,触发 Marker.mouseout() 事件,这导致弹出窗口关闭并重新触发 Marker.mouseover() 事件...循环继续,这就是您看到“闪烁”的原因。
我已经看到这种情况取决于缩放级别(通常是在缩小时)。
尝试在您的弹出选项中添加一个偏移量以使其不受影响:
function makeMarker(){
var Marker = L.marker...
Marker.on('mouseover', function(){Marker.bindPopup('HI', {'offset': L.point(0,-50)}).openPopup();});
Marker.on('mouseout', function(){Marker.closePopup();});
}
关于javascript - Leaflet Mouseout 调用 MouseOver 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109336/