首页 > 解决方案 > 当我单击包含按钮的 l.divicon 自定义 html 时如何阻止弹出窗口打开

问题描述

我正在使用 esrileaflet 库在地图上呈现标记,该地图具有l.divicon在自定义 HTML 中具有按钮的图标。

我已将一个事件绑定到调用的按钮单击,但也打开了我不想要的标记弹出窗口。

由于l.divicon在其自定义 HTML 中包含一个按钮及其标记的一部分,因此每次我单击该按钮时,它都会显示一个警报并打开标记弹出窗口。如何停止标记弹出窗口?

let markerIcon = L.divIcon({
  iconSize: L.point(32, 32),
  iconAnchor: [5, 5],
  html: '<div><img src= "url here"><button id="MyBtn"></button></div>'
});
marker.setIcon(markerIcon);

$("#MyBtn").on('click', function(e) {
  alert("Hi there");
});

标签: javascriptjqueryleafletesri-leafletesri-oss

解决方案


似乎当点击事件到达标记时会出现弹出窗口。在这种情况下,在处理程序e.stopPropagation()内部添加click以阻止事件从#MyBtn标记冒泡。

$("#MyBtn").on('click', function(e) {
  e.stopPropagation();
  alert("Hi there");
});

推荐阅读