我知道您可以在传单中的
map
对象上设置“弹出窗口关闭”事件,有什么方法可以在每个弹出窗口的基础上设置该事件吗?
如果我有一个从像这样的事件中获取的图层...
var layer = event.layer;
var bound = layer.bindPopup(
"blah",
{closeButton: false, closeOnClick: false}
);
var popUp = bound.openPopup();
我想根据条件有条件地为此弹出窗口设置关闭事件。我面临的问题是,当他们绘制形状时,我打开一个弹出窗口以允许他们命名。但是,如果他们在此弹出窗口打开时单击形状,则会运行“单击”事件,该事件将打开另一个弹出窗口以对其进行编辑。我想避免这种情况,这样如果他们关闭第一个弹出窗口而不设置名称,它就会完全删除形状。
没有 onClose,但有 onRemove。当您关闭弹出窗口时会触发此操作:
marker.getPopup().on('remove', function() {
//Your code here
});
// layer on click event
layer.on("click", function (e) {
// get the mouse coordinates
coordsMap = e.latlng;
// define the content popup
let content = "Text Popup or Content";
// create and display popup on map
let popup = L.popup()
.setLatLng(coordsMap)
.setContent(content)
.openOn(map);
// close event popup
popup.on("remove", function () {
alert("popup remove");
//other instructions
});
});