Javascript 单击圆形-传单时启动一个功能

Javascript 单击圆形-传单时启动一个功能,javascript,leaflet,Javascript,Leaflet,我在JS中画了一些圆圈,如下所示: L.circle( [46.765735535841024, 23.58344078063965], 5, { color: "blue" }).addTo(map).bindPopup("Description: This is my description"); 我想用一个函数替换bindpoop。当我单击圆圈时,我想运行一个函数,而不是我的描述显示,例如,我创建了以下函数: function circleClick() { /

我在
JS
中画了一些圆圈,如下所示:

L.circle(
  [46.765735535841024, 23.58344078063965], 5, {
    color: "blue"
  }).addTo(map).bindPopup("Description: This is my description");
我想用一个函数替换
bindpoop
。当我单击圆圈时,我想运行一个函数,而不是我的描述显示,例如,我创建了以下函数:

function circleClick() {
     // my implementations;
}

有人能告诉我如何才能做到这一点吗?

您只需将圆指定给一个变量,然后收听click event

var circle = L.circle(...).addTo(map);

circle.on('click', function (e) {
    alert("Hello, circle!");
});

只需将您的
circleClick
函数指定为每个圆圈的侦听器:

L.circle(
[46.765735535841024, 23.58344078063965], 5, {
颜色:“蓝色”
}
).addTo(地图)。打开(“单击”,循环单击);
//更多L.circle的。。。
函数循环单击(e){
var clickedCircle=e.目标;
//做点什么,比如:
clickedCircle.bindPopup(“某些内容”).openPopup();
}
或者,您可以将所有圆圈聚集在一个组中,并仅将事件侦听器附加到该组:

var group=L.featureGroup().addTo(map);
L.圆圈(
[46.765735535841024, 23.58344078063965], 5, {
颜色:“蓝色”
}
).addTo(集团);
//更多L.circle的。。。
组上(“点击”,功能(e){
var clickedCircle=e.layer;//e.target是组本身。
//做点什么,比如:
clickedCircle.bindPopup(“某些内容”).openPopup();
});

当我只有一个圆时,这种方法有效。但是当我有更多的圆圈时,我能做什么呢?@Alex如果你的意思是你需要访问一些特定于点击的圆圈的数据,你可以通过
e
作为事件侦听器参数来引用后者。不,我有很多这样的圆圈:
L.circle([lat,lng],5,{color:“blue”})。addTo(map)。bindpoop(“Description:这是我的描述”);
我想在单击其中任何一个圆时运行该函数。这是我的代码:该函数只对第一个圆起作用,但对所有圆都起作用。@Alex您应该有一个“编辑”按钮“链接到你的问题下面。请编辑您的问题以添加代码,而不是在评论中链接图像…谢谢!在2021年6月仍然有用-感谢您的反馈!