Leaflet 单击传单中未触发的事件

Leaflet 单击传单中未触发的事件,leaflet,gis,Leaflet,Gis,我在应用程序中使用的是传单.js。 单击事件不会与鼠标悬停事件一起触发 layer.on({ mouseover: function (e) { L.popup().setLatLng(e.latlng) .setContent("Test") .openOn(map); },

我在应用程序中使用的是传单.js。 单击事件不会与鼠标悬停事件一起触发

   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”旁边,虽然它没有覆盖标记图标,但鼠标光标仍有一点位于标记上:

要在现场试用,请执行以下操作:

为了避免这个用户体验问题,例如,您可以尝试使用一个而不是一个弹出窗口。默认情况下,它将显示在坐标的侧面,而不是上方(这使弹出窗口覆盖标记)