javascript - Leaflet Mouseout 调用 MouseOver 事件

标签 javascript jquery css popup leaflet

我有一张传单 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/

相关文章:

javascript - React依赖模块正在父模块中寻找图像源

jquery - 禁用的跨浏览器隐藏 ="disabled"<option>

html - 粘性 header 始终可见?

css - 在 100% 宽度的容器中为 div 创建百分比高度

javascript - DOM 元素计算样式字体大小太小

javascript - D3.js:enter().append()后的属性未设置

javascript - 10 秒后停止执行 setInterval 函数

javascript - 如何将div放在 Canvas 上

jQuery:给每个 <figure> 父级与其 <img> 子级相同的宽度

ruby-on-rails - 如何将Remotipart 1.0与Rails 3.2一起使用来保存文件上传