我在数组中有几个标记(传单),例如
var marker1 = L.marker(...);
var marker2 = L.marker(...);
...
添加到数组中
var markerArray = [];
markerArray.push(marker1);
markerArray.push(marker2);
...
现在我需要使用 For
循环来创建一个平移到我单击的标记的函数。我尝试了这段代码,但它不起作用。
for (var i = 0; i < markerArray.length; i++) {
markerArray[i].on("click", function() {
mymap.panTo(markerArray[i].getLatLng());
})
};
有什么帮助吗?
最佳答案
您所做的是将事件处理程序附加到标记(请参阅 doc )。
在事件处理程序中,标记是事件的目标 (e.target)。
for (var i = 0; i < markerArray.length; i++) {
markerArray[i].on("click", function(e) {
mymap.panTo(e.target.getLatLng());
})
};
您可以用另一种方式编写它,以实现 i 变量在事件处理程序中没有意义:
for (var i = 0; i < markerArray.length; i++) {
markerArray[i].on("click", markerClicked);
};
function markerClicked(e) {
mymap.panTo(e.target.getLatLng());
}
关于javascript - 使用 `For` 循环平移到标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984136/