Leaflet 单击传单中未触发的事件
我在应用程序中使用的是传单.js。 单击事件不会与鼠标悬停事件一起触发Leaflet 单击传单中未触发的事件,leaflet,gis,Leaflet,Gis,我在应用程序中使用的是传单.js。 单击事件不会与鼠标悬停事件一起触发 layer.on({ mouseover: function (e) { L.popup().setLatLng(e.latlng) .setContent("Test") .openOn(map); },
layer.on({
mouseover: function (e) {
L.popup().setLatLng(e.latlng)
.setContent("Test")
.openOn(map);
},
click: function () {
alert("Click");
map.fire("click", e);
}
});
我使用的是自定义标记,而不是圆形标记
option.pointToLayer = function (feature, latlng) {
var marker = L.marker(latlng);
var icon = L.icon({
iconUrl: 'Image/InvestmentIcons/environmentalflow.png',
iconSize: [12, 12], // size of the icon
});
marker.options.icon = icon;
return marker;
}
发生的情况是,当用户试图单击您的标记(这将触发您的
“单击”
事件侦听器,即显示您的警报
)时,他们必须首先将鼠标移动到标记上,这将在该位置打开一个弹出窗口(相应地,您的“mouseover”
事件侦听器),因此,弹出窗口现在接收的是单击,而不是标记
您可以看到,您的“click”
监听器仍在正常工作,将鼠标光标放在弹出窗口“tip”旁边,虽然它没有覆盖标记图标,但鼠标光标仍有一点位于标记上:
要在现场试用,请执行以下操作:
为了避免这个用户体验问题,例如,您可以尝试使用一个而不是一个弹出窗口。默认情况下,它将显示在坐标的侧面,而不是上方(这使弹出窗口覆盖标记)